packages feed

vulkan 3.26 → 3.26.1

raw patch · 61 files changed

+31243/−25678 lines, 61 files

Files

changelog.md view
@@ -2,6 +2,9 @@  ## WIP +## [3.26.1] - 2023-10-21+- Bump API version to v1.3.269+ ## [3.26] - 2023-10-17 - Bump API version to v1.3.268   - A breaking change is that `VkBufferMemoryBarrier` has extensions,
package.yaml view
@@ -1,5 +1,5 @@ name: vulkan-version: "3.26"+version: "3.26.1" synopsis: Bindings to the Vulkan graphics API. description: Please see [the readme](https://github.com/expipiplus1/vulkan/#readme) category: Graphics
src/Vulkan/CStruct/Extends.hs view
@@ -171,6 +171,9 @@ 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_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) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_semaphore_win32 (D3D12FenceSubmitInfoKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_debug_marker (DebugMarkerMarkerInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_debug_marker (DebugMarkerObjectNameInfoEXT)@@ -236,6 +239,7 @@ import {-# SOURCE #-} Vulkan.Core10.Device (DeviceQueueCreateInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_global_priority (DeviceQueueGlobalPriorityCreateInfoKHR) import {-# SOURCE #-} Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory (DeviceQueueInfo2)+import {-# SOURCE #-} Vulkan.Extensions.VK_ARM_scheduling_controls (DeviceQueueShaderCoreControlCreateInfoARM) import {-# SOURCE #-} Vulkan.Extensions.VK_LUNARG_direct_driver_loading (DirectDriverLoadingInfoLUNARG) import {-# SOURCE #-} Vulkan.Extensions.VK_LUNARG_direct_driver_loading (DirectDriverLoadingListLUNARG) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_directfb_surface (DirectFBSurfaceCreateInfoEXT)@@ -489,6 +493,8 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_NV_coverage_reduction_mode (PhysicalDeviceCoverageReductionModeFeaturesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_filter_cubic_clamp (PhysicalDeviceCubicClampFeaturesQCOM) import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_filter_cubic_weights (PhysicalDeviceCubicWeightsFeaturesQCOM)+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_cuda_kernel_launch (PhysicalDeviceCudaKernelLaunchFeaturesNV)+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_cuda_kernel_launch (PhysicalDeviceCudaKernelLaunchPropertiesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_custom_border_color (PhysicalDeviceCustomBorderColorFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_custom_border_color (PhysicalDeviceCustomBorderColorPropertiesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_dedicated_allocation_image_aliasing (PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV)@@ -660,6 +666,8 @@ import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax (PhysicalDeviceSamplerFilterMinmaxProperties) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion (PhysicalDeviceSamplerYcbcrConversionFeatures) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_EXT_scalar_block_layout (PhysicalDeviceScalarBlockLayoutFeatures)+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_EXT_shader_atomic_float2 (PhysicalDeviceShaderAtomicFloat2FeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_shader_atomic_float (PhysicalDeviceShaderAtomicFloatFeaturesEXT)@@ -1296,7 +1304,11 @@   Extends DeviceCreateInfo PhysicalDeviceImageProcessing2FeaturesQCOM = ()   Extends DeviceCreateInfo PhysicalDeviceDescriptorPoolOverallocationFeaturesNV = ()   Extends DeviceCreateInfo PhysicalDeviceExternalFormatResolveFeaturesANDROID = ()+  Extends DeviceCreateInfo PhysicalDeviceCudaKernelLaunchFeaturesNV = ()+  Extends DeviceCreateInfo DeviceQueueShaderCoreControlCreateInfoARM = ()+  Extends DeviceCreateInfo PhysicalDeviceSchedulingControlsFeaturesARM = ()   Extends DeviceQueueCreateInfo DeviceQueueGlobalPriorityCreateInfoKHR = ()+  Extends DeviceQueueCreateInfo DeviceQueueShaderCoreControlCreateInfoARM = ()   Extends EventCreateInfo ExportMetalObjectCreateInfoEXT = ()   Extends EventCreateInfo ImportMetalSharedEventInfoEXT = ()   Extends ExecutionGraphPipelineCreateInfoAMDX PipelineCreationFeedbackCreateInfo = ()@@ -1566,6 +1578,8 @@   Extends PhysicalDeviceFeatures2 PhysicalDeviceImageProcessing2FeaturesQCOM = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceDescriptorPoolOverallocationFeaturesNV = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceExternalFormatResolveFeaturesANDROID = ()+  Extends PhysicalDeviceFeatures2 PhysicalDeviceCudaKernelLaunchFeaturesNV = ()+  Extends PhysicalDeviceFeatures2 PhysicalDeviceSchedulingControlsFeaturesARM = ()   Extends PhysicalDeviceImageFormatInfo2 PhysicalDeviceExternalImageFormatInfo = ()   Extends PhysicalDeviceImageFormatInfo2 ImageFormatListCreateInfo = ()   Extends PhysicalDeviceImageFormatInfo2 PhysicalDeviceImageDrmFormatModifierInfoEXT = ()@@ -1657,6 +1671,8 @@   Extends PhysicalDeviceProperties2 PhysicalDeviceImageProcessing2PropertiesQCOM = ()   Extends PhysicalDeviceProperties2 PhysicalDeviceLayeredDriverPropertiesMSFT = ()   Extends PhysicalDeviceProperties2 PhysicalDeviceExternalFormatResolvePropertiesANDROID = ()+  Extends PhysicalDeviceProperties2 PhysicalDeviceCudaKernelLaunchPropertiesNV = ()+  Extends PhysicalDeviceProperties2 PhysicalDeviceSchedulingControlsPropertiesARM = ()   Extends PhysicalDeviceSurfaceInfo2KHR SurfaceFullScreenExclusiveInfoEXT = ()   Extends PhysicalDeviceSurfaceInfo2KHR SurfaceFullScreenExclusiveWin32InfoEXT = ()   Extends PhysicalDeviceSurfaceInfo2KHR SurfacePresentModeEXT = ()@@ -2378,6 +2394,11 @@   STRUCTURE_TYPE_LATENCY_SUBMISSION_PRESENT_ID_NV -> go @LatencySubmissionPresentIdNV   STRUCTURE_TYPE_SWAPCHAIN_LATENCY_CREATE_INFO_NV -> go @SwapchainLatencyCreateInfoNV   STRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NV -> go @LatencySurfaceCapabilitiesNV+  STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_FEATURES_NV -> go @PhysicalDeviceCudaKernelLaunchFeaturesNV+  STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_PROPERTIES_NV -> go @PhysicalDeviceCudaKernelLaunchPropertiesNV+  STRUCTURE_TYPE_DEVICE_QUEUE_SHADER_CORE_CONTROL_CREATE_INFO_ARM -> go @DeviceQueueShaderCoreControlCreateInfoARM+  STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_FEATURES_ARM -> go @PhysicalDeviceSchedulingControlsFeaturesARM+  STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_PROPERTIES_ARM -> go @PhysicalDeviceSchedulingControlsPropertiesARM   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@@ -2917,6 +2938,11 @@ {-# complete (::&) :: LatencySubmissionPresentIdNV #-} {-# complete (::&) :: SwapchainLatencyCreateInfoNV #-} {-# complete (::&) :: LatencySurfaceCapabilitiesNV #-}+{-# complete (::&) :: PhysicalDeviceCudaKernelLaunchFeaturesNV #-}+{-# complete (::&) :: PhysicalDeviceCudaKernelLaunchPropertiesNV #-}+{-# complete (::&) :: DeviceQueueShaderCoreControlCreateInfoARM #-}+{-# complete (::&) :: PhysicalDeviceSchedulingControlsFeaturesARM #-}+{-# complete (::&) :: PhysicalDeviceSchedulingControlsPropertiesARM #-}  -- | View the head and tail of a 'Chain', see '::&' --
src/Vulkan/Core10/AllocationCallbacks.hs view
@@ -92,6 +92,8 @@ -- 'Vulkan.Core10.Pipeline.createComputePipelines', -- 'Vulkan.Extensions.VK_NVX_binary_import.createCuFunctionNVX', -- 'Vulkan.Extensions.VK_NVX_binary_import.createCuModuleNVX',+-- 'Vulkan.Extensions.VK_NV_cuda_kernel_launch.createCudaFunctionNV',+-- 'Vulkan.Extensions.VK_NV_cuda_kernel_launch.createCudaModuleNV', -- 'Vulkan.Extensions.VK_EXT_debug_report.createDebugReportCallbackEXT', -- 'Vulkan.Extensions.VK_EXT_debug_utils.createDebugUtilsMessengerEXT', -- 'Vulkan.Extensions.VK_KHR_deferred_host_operations.createDeferredOperationKHR',@@ -155,6 +157,8 @@ -- 'Vulkan.Core10.CommandPool.destroyCommandPool', -- 'Vulkan.Extensions.VK_NVX_binary_import.destroyCuFunctionNVX', -- 'Vulkan.Extensions.VK_NVX_binary_import.destroyCuModuleNVX',+-- 'Vulkan.Extensions.VK_NV_cuda_kernel_launch.destroyCudaFunctionNV',+-- 'Vulkan.Extensions.VK_NV_cuda_kernel_launch.destroyCudaModuleNV', -- 'Vulkan.Extensions.VK_EXT_debug_report.destroyDebugReportCallbackEXT', -- 'Vulkan.Extensions.VK_EXT_debug_utils.destroyDebugUtilsMessengerEXT', -- 'Vulkan.Extensions.VK_KHR_deferred_host_operations.destroyDeferredOperationKHR',
src/Vulkan/Core10/CommandBufferBuilding.hs view
@@ -2042,23885 +2042,24513 @@ --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-range-clamp cubicRangeClamp> --     feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView' --     being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as---     a result of this command------     [/must/ not have a 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo']---         @reductionMode@ equal to---         'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM'------ -   #VUID-vkCmdDraw-reductionMode-09213# Any---     'Vulkan.Core10.Handles.ImageView' being sampled with a---     'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'::@reductionMode@---     equal to---     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM'---     as a result of this command /must/ sample with---     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT'------ -   #VUID-vkCmdDraw-selectableCubicWeights-09214# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-weight-selection selectableCubicWeights>---     feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView'---     being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as---     a result of this command /must/ have---     'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.SamplerCubicWeightsCreateInfoQCOM'::@cubicWeights@---     equal to---     'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM'------ -   #VUID-vkCmdDraw-flags-02696# Any 'Vulkan.Core10.Handles.Image'---     created with a 'Vulkan.Core10.Image.ImageCreateInfo'::@flags@---     containing---     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_CORNER_SAMPLED_BIT_NV'---     sampled as a result of this command /must/ only be sampled using a---     'Vulkan.Core10.Enums.SamplerAddressMode.SamplerAddressMode' of---     'Vulkan.Core10.Enums.SamplerAddressMode.SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE'------ -   #VUID-vkCmdDraw-OpTypeImage-07027# For any---     'Vulkan.Core10.Handles.ImageView' being written as a storage image---     where the image format field of the @OpTypeImage@ is @Unknown@, the---     view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'------ -   #VUID-vkCmdDraw-OpTypeImage-07028# For any---     'Vulkan.Core10.Handles.ImageView' being read as a storage image---     where the image format field of the @OpTypeImage@ is @Unknown@, the---     view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT'------ -   #VUID-vkCmdDraw-OpTypeImage-07029# For any---     'Vulkan.Core10.Handles.BufferView' being written as a storage texel---     buffer where the image format field of the @OpTypeImage@ is---     @Unknown@, the view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>---     /must/ contain---     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'------ -   #VUID-vkCmdDraw-OpTypeImage-07030# Any---     'Vulkan.Core10.Handles.BufferView' being read as a storage texel---     buffer where the image format field of the @OpTypeImage@ is---     @Unknown@ then the view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>---     /must/ contain---     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT'------ -   #VUID-vkCmdDraw-None-08600# For each set /n/ that is statically used---     by---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,---     a descriptor set /must/ have been bound to /n/ at the same pipeline---     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is---     compatible for set /n/, with the---     'Vulkan.Core10.Handles.PipelineLayout' or---     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>------ -   #VUID-vkCmdDraw-None-08601# For each push constant that is---     statically used by---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,---     a push constant value /must/ have been set for the same pipeline---     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is---     compatible for push constants, with the---     'Vulkan.Core10.Handles.PipelineLayout' or---     'Vulkan.Core10.Handles.DescriptorSetLayout' and---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>------ -   #VUID-vkCmdDraw-maintenance4-08602# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance4 maintenance4>---     feature is not enabled, then for each push constant that is---     statically used by---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,---     a push constant value /must/ have been set for the same pipeline---     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is---     compatible for push constants, with the---     'Vulkan.Core10.Handles.PipelineLayout' or---     'Vulkan.Core10.Handles.DescriptorSetLayout' and---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>------ -   #VUID-vkCmdDraw-None-08114# Descriptors in each bound descriptor---     set, specified via 'cmdBindDescriptorSets', /must/ be valid if they---     are statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to---     the pipeline bind point used by this command and the bound---     'Vulkan.Core10.Handles.Pipeline' was not created with---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'------ -   #VUID-vkCmdDraw-None-08115# If the descriptors used by the---     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point---     were specified via 'cmdBindDescriptorSets', the bound---     'Vulkan.Core10.Handles.Pipeline' /must/ have been created without---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'------ -   #VUID-vkCmdDraw-None-08116# Descriptors in bound descriptor buffers,---     specified via---     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',---     /must/ be valid if they are dynamically used by the---     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point---     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'---     was created with---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'------ -   #VUID-vkCmdDraw-None-08604# Descriptors in bound descriptor buffers,---     specified via---     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',---     /must/ be valid if they are dynamically used by any---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding---     to the pipeline bind point used by this command------ -   #VUID-vkCmdDraw-None-08117# If the descriptors used by the---     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point---     were specified via---     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',---     the bound 'Vulkan.Core10.Handles.Pipeline' /must/ have been created---     with---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'------ -   #VUID-vkCmdDraw-None-08119# If a descriptor is dynamically used with---     a 'Vulkan.Core10.Handles.Pipeline' created with---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',---     the descriptor memory /must/ be resident------ -   #VUID-vkCmdDraw-None-08605# If a descriptor is dynamically used with---     a 'Vulkan.Extensions.Handles.ShaderEXT' created with a---     'Vulkan.Core10.Handles.DescriptorSetLayout' that was created with---     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',---     the descriptor memory /must/ be resident------ -   #VUID-vkCmdDraw-None-08606# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>---     feature is not enabled, a valid pipeline /must/ be bound to the---     pipeline bind point used by this command------ -   #VUID-vkCmdDraw-None-08607# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>---     is enabled, either a valid pipeline /must/ be bound to the pipeline---     bind point used by this command, or a valid combination of valid and---     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be---     bound to every supported shader stage corresponding to the pipeline---     bind point used by this command------ -   #VUID-vkCmdDraw-None-08608# If a pipeline is bound to the pipeline---     bind point used by this command, there /must/ not have been any---     calls to dynamic state setting commands for any state not specified---     as dynamic in the 'Vulkan.Core10.Handles.Pipeline' object bound to---     the pipeline bind point used by this command, since that pipeline---     was bound------ -   #VUID-vkCmdDraw-None-08609# If the 'Vulkan.Core10.Handles.Pipeline'---     object bound to the pipeline bind point used by this command or any---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding---     to the pipeline bind point used by this command accesses a---     'Vulkan.Core10.Handles.Sampler' object that uses unnormalized---     coordinates, that sampler /must/ not be used to sample from any---     'Vulkan.Core10.Handles.Image' with a---     'Vulkan.Core10.Handles.ImageView' of the type---     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D',---     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE',---     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D_ARRAY',---     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D_ARRAY' or---     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY', in---     any shader stage------ -   #VUID-vkCmdDraw-None-08610# If the 'Vulkan.Core10.Handles.Pipeline'---     object bound to the pipeline bind point used by this command or any---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding---     to the pipeline bind point used by this command accesses a---     'Vulkan.Core10.Handles.Sampler' object that uses unnormalized---     coordinates, that sampler /must/ not be used with any of the SPIR-V---     @OpImageSample*@ or @OpImageSparseSample*@ instructions with---     @ImplicitLod@, @Dref@ or @Proj@ in their name, in any shader stage------ -   #VUID-vkCmdDraw-None-08611# If the 'Vulkan.Core10.Handles.Pipeline'---     object bound to the pipeline bind point used by this command or any---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding---     to the pipeline bind point used by this command accesses a---     'Vulkan.Core10.Handles.Sampler' object that uses unnormalized---     coordinates, that sampler /must/ not be used with any of the SPIR-V---     @OpImageSample*@ or @OpImageSparseSample*@ instructions that---     includes a LOD bias or any offset values, in any shader stage------ -   #VUID-vkCmdDraw-uniformBuffers-06935# If any stage of the---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command accesses a uniform buffer, and that stage---     was created without enabling either---     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'---     or---     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'---     for @uniformBuffers@, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>---     feature is not enabled, that stage /must/ not access values outside---     of the range of the buffer as specified in the descriptor set bound---     to the same pipeline bind point------ -   #VUID-vkCmdDraw-None-08612# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>---     feature is not enabled, and any---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding---     to the pipeline bind point used by this command accesses a uniform---     buffer, it /must/ not access values outside of the range of the---     buffer as specified in the descriptor set bound to the same pipeline---     bind point------ -   #VUID-vkCmdDraw-storageBuffers-06936# If any stage of the---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command accesses a storage buffer, and that stage---     was created without enabling either---     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'---     or---     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'---     for @storageBuffers@, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>---     feature is not enabled, that stage /must/ not access values outside---     of the range of the buffer as specified in the descriptor set bound---     to the same pipeline bind point------ -   #VUID-vkCmdDraw-None-08613# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>---     feature is not enabled, and any---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding---     to the pipeline bind point used by this command accesses a storage---     buffer, it /must/ not access values outside of the range of the---     buffer as specified in the descriptor set bound to the same pipeline---     bind point------ -   #VUID-vkCmdDraw-commandBuffer-02707# If @commandBuffer@ is an---     unprotected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, any resource accessed by---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding bound shaders>---     /must/ not be a protected resource------ -   #VUID-vkCmdDraw-None-06550# If---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>---     accesses a 'Vulkan.Core10.Handles.Sampler' or---     'Vulkan.Core10.Handles.ImageView' object that enables---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,---     that object /must/ only be used with @OpImageSample*@ or---     @OpImageSparseSample*@ instructions------ -   #VUID-vkCmdDraw-ConstOffset-06551# If---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>---     accesses a 'Vulkan.Core10.Handles.Sampler' or---     'Vulkan.Core10.Handles.ImageView' object that enables---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,---     that object /must/ not use the @ConstOffset@ and @Offset@ operands------ -   #VUID-vkCmdDraw-viewType-07752# If a---     'Vulkan.Core10.Handles.ImageView' is accessed as a result of this---     command, then the image view’s @viewType@ /must/ match the @Dim@---     operand of the @OpTypeImage@ as described in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-operation-validation ???>------ -   #VUID-vkCmdDraw-format-07753# If a 'Vulkan.Core10.Handles.ImageView'---     is accessed as a result of this command, then the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-numericformat numeric type>---     of the image view’s @format@ and the @Sampled@ @Type@ operand of the---     @OpTypeImage@ /must/ match------ -   #VUID-vkCmdDraw-OpImageWrite-08795# If a---     'Vulkan.Core10.Handles.ImageView' created with a format other than---     'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using---     @OpImageWrite@ as a result of this command, then the @Type@ of the---     @Texel@ operand of that instruction /must/ have at least as many---     components as the image view’s format------ -   #VUID-vkCmdDraw-OpImageWrite-08796# If a---     'Vulkan.Core10.Handles.ImageView' created with the format---     'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using---     @OpImageWrite@ as a result of this command, then the @Type@ of the---     @Texel@ operand of that instruction /must/ have four components------ -   #VUID-vkCmdDraw-OpImageWrite-04469# If a---     'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@---     as a result of this command, then the @Type@ of the @Texel@ operand---     of that instruction /must/ have at least as many components as the---     buffer view’s format------ -   #VUID-vkCmdDraw-SampledType-04470# If a---     'Vulkan.Core10.Handles.ImageView' with a---     'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component---     width is accessed as a result of this command, the @SampledType@ of---     the @OpTypeImage@ operand of that instruction /must/ have a @Width@---     of 64------ -   #VUID-vkCmdDraw-SampledType-04471# If a---     'Vulkan.Core10.Handles.ImageView' with a---     'Vulkan.Core10.Enums.Format.Format' that has a component width less---     than 64-bit is accessed as a result of this command, the---     @SampledType@ of the @OpTypeImage@ operand of that instruction---     /must/ have a @Width@ of 32------ -   #VUID-vkCmdDraw-SampledType-04472# If a---     'Vulkan.Core10.Handles.BufferView' with a---     'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component---     width is accessed as a result of this command, the @SampledType@ of---     the @OpTypeImage@ operand of that instruction /must/ have a @Width@---     of 64------ -   #VUID-vkCmdDraw-SampledType-04473# If a---     'Vulkan.Core10.Handles.BufferView' with a---     'Vulkan.Core10.Enums.Format.Format' that has a component width less---     than 64-bit is accessed as a result of this command, the---     @SampledType@ of the @OpTypeImage@ operand of that instruction---     /must/ have a @Width@ of 32------ -   #VUID-vkCmdDraw-sparseImageInt64Atomics-04474# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>---     feature is not enabled, 'Vulkan.Core10.Handles.Image' objects---     created with the---     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_RESIDENCY_BIT'---     flag /must/ not be accessed by atomic instructions through an---     @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this---     command------ -   #VUID-vkCmdDraw-sparseImageInt64Atomics-04475# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>---     feature is not enabled, 'Vulkan.Core10.Handles.Buffer' objects---     created with the---     'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_SPARSE_RESIDENCY_BIT'---     flag /must/ not be accessed by atomic instructions through an---     @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this---     command------ -   #VUID-vkCmdDraw-OpImageWeightedSampleQCOM-06971# If---     @OpImageWeightedSampleQCOM@ is used to sample a---     'Vulkan.Core10.Handles.ImageView' as a result of this command, then---     the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM'------ -   #VUID-vkCmdDraw-OpImageWeightedSampleQCOM-06972# If---     @OpImageWeightedSampleQCOM@ uses a 'Vulkan.Core10.Handles.ImageView'---     as a sample weight image as a result of this command, then the image---     view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM'------ -   #VUID-vkCmdDraw-OpImageBoxFilterQCOM-06973# If---     @OpImageBoxFilterQCOM@ is used to sample a---     'Vulkan.Core10.Handles.ImageView' as a result of this command, then---     the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM'------ -   #VUID-vkCmdDraw-OpImageBlockMatchSSDQCOM-06974# If---     @OpImageBlockMatchSSDQCOM@ is used to read from an---     'Vulkan.Core10.Handles.ImageView' as a result of this command, then---     the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'------ -   #VUID-vkCmdDraw-OpImageBlockMatchSADQCOM-06975# If---     @OpImageBlockMatchSADQCOM@ is used to read from an---     'Vulkan.Core10.Handles.ImageView' as a result of this command, then---     the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'------ -   #VUID-vkCmdDraw-OpImageBlockMatchSADQCOM-06976# If---     @OpImageBlockMatchSADQCOM@ or OpImageBlockMatchSSDQCOM is used to---     read from a reference image as result of this command, then the---     specified reference coordinates /must/ not fail---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation integer texel coordinate validation>------ -   #VUID-vkCmdDraw-OpImageWeightedSampleQCOM-06977# If---     @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,---     @OpImageBlockMatchWindowSSDQCOM@, @OpImageBlockMatchWindowSADQCOM@,---     @OpImageBlockMatchGatherSSDQCOM@, @OpImageBlockMatchGatherSADQCOM@,---     @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a---     'Vulkan.Core10.Handles.Sampler' as a result of this command, then---     the sampler /must/ have been created with---     'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'------ -   #VUID-vkCmdDraw-OpImageWeightedSampleQCOM-06978# If any command---     other than @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,---     @OpImageBlockMatchWindowSSDQCOM@, @OpImageBlockMatchWindowSADQCOM@,---     @OpImageBlockMatchGatherSSDQCOM@, @OpImageBlockMatchGatherSADQCOM@,---     @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a---     'Vulkan.Core10.Handles.Sampler' as a result of this command, then---     the sampler /must/ not have been created with---     'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'------ -   #VUID-vkCmdDraw-OpImageBlockMatchWindow-09215# If a---     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@---     instruction is used to read from an---     'Vulkan.Core10.Handles.ImageView' as a result of this command, then---     the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'------ -   #VUID-vkCmdDraw-OpImageBlockMatchWindow-09216# If a---     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@---     instruction is used to read from an---     'Vulkan.Core10.Handles.ImageView' as a result of this command, then---     the image view’s format /must/ be a single-component format.------ -   #VUID-vkCmdDraw-OpImageBlockMatchWindow-09217# If a---     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@---     read from a reference image as result of this command, then the---     specified reference coordinates /must/ not fail---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation integer texel coordinate validation>------ -   #VUID-vkCmdDraw-None-07288# Any shader invocation executed by this---     command /must/---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-termination terminate>------ -   #VUID-vkCmdDraw-renderPass-02684# The current render pass /must/ be---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-compatibility compatible>---     with the @renderPass@ member of the---     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo' structure---     specified when creating the 'Vulkan.Core10.Handles.Pipeline' bound---     to---     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'------ -   #VUID-vkCmdDraw-subpass-02685# The subpass index of the current---     render pass /must/ be equal to the @subpass@ member of the---     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo' structure---     specified when creating the 'Vulkan.Core10.Handles.Pipeline' bound---     to---     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'------ -   #VUID-vkCmdDraw-None-07748# If any shader statically accesses an---     input attachment, a valid descriptor /must/ be bound to the pipeline---     via a descriptor set------ -   #VUID-vkCmdDraw-OpTypeImage-07468# If any shader executed by this---     pipeline accesses an @OpTypeImage@ variable with a @Dim@ operand of---     @SubpassData@, it /must/ be decorated with an @InputAttachmentIndex@---     that corresponds to a valid input attachment in the current subpass------ -   #VUID-vkCmdDraw-None-07469# Input attachment views accessed in a---     subpass /must/ be created with the same---     'Vulkan.Core10.Enums.Format.Format' as the corresponding subpass---     definition, and be created with a 'Vulkan.Core10.Handles.ImageView'---     that is compatible with the attachment referenced by the subpass\'---     @pInputAttachments@[@InputAttachmentIndex@] in the currently bound---     'Vulkan.Core10.Handles.Framebuffer' as specified by---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#compatibility-inputattachment Fragment Input Attachment Compatibility>------ -   #VUID-vkCmdDraw-None-06537# Memory backing image subresources used---     as attachments in the current render pass /must/ not be written in---     any way other than as an attachment by this command------ -   #VUID-vkCmdDraw-None-09000# If a color attachment is written by any---     prior command in this subpass or by the load, store, or resolve---     operations for this subpass, it is not in the---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'---     image layout, and either:------     -   the---         'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'---         is set on the currently bound pipeline or------     -   the last call to---         'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'---         included---         'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'---         and------         -   there is no currently bound graphics pipeline or------         -   the currently bound graphics pipeline was created with---             'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'---             it /must/ not be accessed in any way other than as an---             attachment by this command------ -   #VUID-vkCmdDraw-None-09001# If a depth attachment is written by any---     prior command in this subpass or by the load, store, or resolve---     operations for this subpass, it is not in the---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'---     image layout, and either:------     -   the---         'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'---         is set on the currently bound pipeline or------     -   the last call to---         'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'---         included---         'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT'---         and------         -   there is no currently bound graphics pipeline or------         -   the currently bound graphics pipeline was created with---             'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'---             it /must/ not be accessed in any way other than as an---             attachment by this command------ -   #VUID-vkCmdDraw-None-09002# If a stencil attachment is written by---     any prior command in this subpass or by the load, store, or resolve---     operations for this subpass, it is not in the---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'---     image layout, and either:------     -   the---         'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'---         is set on the currently bound pipeline or------     -   the last call to---         'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'---         included---         'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'---         and------         -   there is no currently bound graphics pipeline or------         -   the currently bound graphics pipeline was created with---             'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'---             it /must/ not be accessed in any way other than as an---             attachment by this command------ -   #VUID-vkCmdDraw-None-09003# If an attachment is written by any prior---     command in this subpass or by the load, store, or resolve operations---     for this subpass, it /must/ not be accessed in any way other than as---     an attachment, storage image, or sampled image by this command------ -   #VUID-vkCmdDraw-None-06539# If any previously recorded command in---     the current subpass accessed an image subresource used as an---     attachment in this subpass in any way other than as an attachment,---     this command /must/ not write to that image subresource as an---     attachment------ -   #VUID-vkCmdDraw-None-06886# If the current render pass instance uses---     a depth\/stencil attachment with a read-only layout for the depth---     aspect,---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-depth-write depth writes>---     /must/ be disabled------ -   #VUID-vkCmdDraw-None-06887# If the current render pass instance uses---     a depth\/stencil attachment with a read-only layout for the stencil---     aspect, both front and back @writeMask@ are not zero, and stencil---     test is enabled,---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-stencil all stencil ops>---     /must/ be 'Vulkan.Core10.Enums.StencilOp.STENCIL_OP_KEEP'------ -   #VUID-vkCmdDraw-None-07831# If the bound graphics pipeline state was---     created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT' dynamic---     state enabled then 'cmdSetViewport' /must/ have been called in the---     current command buffer prior to this drawing command------ -   #VUID-vkCmdDraw-None-07832# If the bound graphics pipeline state was---     created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR' dynamic---     state enabled then 'cmdSetScissor' /must/ have been called in the---     current command buffer prior to this drawing command------ -   #VUID-vkCmdDraw-None-07833# If the bound graphics pipeline state was---     created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_WIDTH' dynamic---     state enabled then 'cmdSetLineWidth' /must/ have been called in the---     current command buffer prior to this drawing command------ -   #VUID-vkCmdDraw-None-08617# If a shader object is bound to any---     graphics stage, and the most recent call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'---     in the current command buffer set @polygonMode@ to---     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE',---     'cmdSetLineWidth' /must/ have been called in the current command---     buffer prior to this drawing command------ -   #VUID-vkCmdDraw-None-08618# If a shader object is bound to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'---     stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'---     in the current command buffer set @primitiveTopology@ to any line---     topology, 'cmdSetLineWidth' /must/ have been called in the current---     command buffer prior to this drawing command------ -   #VUID-vkCmdDraw-None-08619# If a shader object that outputs line---     primitives is bound to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'---     or---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'---     stage, 'cmdSetLineWidth' /must/ have been called in the current---     command buffer prior to this drawing command------ -   #VUID-vkCmdDraw-None-07834# If the bound graphics pipeline state was---     created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS' dynamic---     state enabled then 'cmdSetDepthBias' or---     'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-08620# If a shader object is bound to any---     graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable'---     in the current command buffer set @depthBiasEnable@ to---     'Vulkan.Core10.FundamentalTypes.TRUE', 'cmdSetDepthBias' or---     'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-07835# If the bound graphics pipeline state was---     created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_BLEND_CONSTANTS'---     dynamic state enabled then 'cmdSetBlendConstants' /must/ have been---     called in the current command buffer prior to this drawing command------ -   #VUID-vkCmdDraw-None-08621# If a shader object is bound to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'---     stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'---     in the current command buffer set any element of---     @pColorBlendEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE', and---     the most recent call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'---     in the current command buffer set the same element of---     @pColorBlendEquations@ to a---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.ColorBlendEquationEXT'---     structure with any 'Vulkan.Core10.Enums.BlendFactor.BlendFactor'---     member with a value of---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_COLOR',---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR',---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_ALPHA', or---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA',---     'cmdSetBlendConstants' /must/ have been called in the current---     command buffer prior to this drawing command------ -   #VUID-vkCmdDraw-None-07836# If the bound graphics pipeline state was---     created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS'---     dynamic state enabled, and if the current @depthBoundsTestEnable@---     state is 'Vulkan.Core10.FundamentalTypes.TRUE', then---     'cmdSetDepthBounds' /must/ have been called in the current command---     buffer prior to this drawing command------ -   #VUID-vkCmdDraw-None-08622# If a shader object is bound to any---     graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'---     in the current command buffer set @depthBoundsTestEnable@ to---     'Vulkan.Core10.FundamentalTypes.TRUE', then 'cmdSetDepthBounds'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-07837# If the bound graphics pipeline state was---     created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_COMPARE_MASK'---     dynamic state enabled, and if the current @stencilTestEnable@ state---     is 'Vulkan.Core10.FundamentalTypes.TRUE', then---     'cmdSetStencilCompareMask' /must/ have been called in the current---     command buffer prior to this drawing command------ -   #VUID-vkCmdDraw-None-08623# If a shader object is bound to any---     graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'---     in the current command buffer set @stencilTestEnable@ to---     'Vulkan.Core10.FundamentalTypes.TRUE', 'cmdSetStencilCompareMask'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-07838# If the bound graphics pipeline state was---     created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'---     dynamic state enabled, and if the current @stencilTestEnable@ state---     is 'Vulkan.Core10.FundamentalTypes.TRUE', then---     'cmdSetStencilWriteMask' /must/ have been called in the current---     command buffer prior to this drawing command------ -   #VUID-vkCmdDraw-None-08624# If a shader object is bound to any---     graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'---     in the current command buffer set @stencilTestEnable@ to---     'Vulkan.Core10.FundamentalTypes.TRUE', 'cmdSetStencilWriteMask'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-07839# If the bound graphics pipeline state was---     created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_REFERENCE'---     dynamic state enabled, and if the current @stencilTestEnable@ state---     is 'Vulkan.Core10.FundamentalTypes.TRUE', then---     'cmdSetStencilReference' /must/ have been called in the current---     command buffer prior to this drawing command------ -   #VUID-vkCmdDraw-None-08625# If a shader object is bound to any---     graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'---     in the current command buffer set @stencilTestEnable@ to---     'Vulkan.Core10.FundamentalTypes.TRUE', 'cmdSetStencilReference'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-maxMultiviewInstanceIndex-02688# If the draw is---     recorded in a render pass instance with multiview enabled, the---     maximum instance index /must/ be less than or equal to---     'Vulkan.Core11.Promoted_From_VK_KHR_multiview.PhysicalDeviceMultiviewProperties'::@maxMultiviewInstanceIndex@------ -   #VUID-vkCmdDraw-sampleLocationsEnable-02689# If the bound graphics---     pipeline was created with---     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@---     set to 'Vulkan.Core10.FundamentalTypes.TRUE' and the current subpass---     has a depth\/stencil attachment, then that attachment /must/ have---     been created with the---     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT'---     bit set------ -   #VUID-vkCmdDraw-None-06666# If the bound graphics pipeline state was---     created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-08626# If a shader object is bound to any---     graphics stage, and the most recent call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'---     in the current command buffer set @sampleLocationsEnable@ to---     'Vulkan.Core10.FundamentalTypes.TRUE', and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-sampleLocationsPerPixel-07934# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'---     state enabled, then the @sampleLocationsPerPixel@ member of---     @pSampleLocationsInfo@ in the last call to---     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'---     /must/ equal the @rasterizationSamples@ member of the---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'---     structure the bound graphics pipeline has been created with------ -   #VUID-vkCmdDraw-None-07840# If the bound graphics pipeline state was---     created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic---     state enabled then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-08627# If a shader object is bound to any---     graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-07841# If the bound graphics pipeline state was---     created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRONT_FACE' dynamic---     state enabled then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-08628# If a shader object is bound to any---     graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-07843# If the bound graphics pipeline state was---     created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE'---     dynamic state enabled then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-08629# If a shader object is bound to any---     graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-07844# If the bound graphics pipeline state was---     created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'---     dynamic state enabled then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-08630# If a shader object is bound to any---     graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-07845# If the bound graphics pipeline state was---     created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP'---     dynamic state enabled then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-08631# If a shader object is bound to any---     graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'---     in the current command buffer set @depthTestEnable@ to---     'Vulkan.Core10.FundamentalTypes.TRUE', then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-07846# If the bound graphics pipeline state was---     created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE'---     dynamic state enabled then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-08632# If a shader object is bound to any---     graphics stage, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthBounds depthBounds>---     feature is enabled, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then the---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-07847# If the bound graphics pipeline state was---     created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE'---     dynamic state enabled then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-08633# If a shader object is bound to any---     graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-07848# If the bound graphics pipeline state was---     created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP' dynamic---     state enabled then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-08634# If a shader object is bound to any---     graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'---     in the current command buffer set @stencilTestEnable@ to---     'Vulkan.Core10.FundamentalTypes.TRUE', then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-viewportCount-03417# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'---     dynamic state enabled, but not the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'---     dynamic state enabled, then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'---     /must/ have been called in the current command buffer prior to this---     drawing command, and the @viewportCount@ parameter of---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'---     /must/ match the---     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@scissorCount@---     of the pipeline------ -   #VUID-vkCmdDraw-scissorCount-03418# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'---     dynamic state enabled, but not the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'---     dynamic state enabled, then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'---     /must/ have been called in the current command buffer prior to this---     drawing command, and the @scissorCount@ parameter of---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'---     /must/ match the---     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@viewportCount@---     of the pipeline------ -   #VUID-vkCmdDraw-viewportCount-03419# If the bound graphics pipeline---     state was created with both the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'---     and---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'---     dynamic states enabled then both---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'---     and---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'---     /must/ have been called in the current command buffer prior to this---     drawing command, and the @viewportCount@ parameter of---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'---     /must/ match the @scissorCount@ parameter of---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'------ -   #VUID-vkCmdDraw-None-08635# If a shader object is bound to any---     graphics stage, then both---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'---     and---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'---     /must/ have been called in the current command buffer prior to this---     drawing command, and the @viewportCount@ parameter of---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'---     /must/ match the @scissorCount@ parameter of---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'------ -   #VUID-vkCmdDraw-viewportCount-04137# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'---     dynamic state enabled, but not the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_NV'---     dynamic state enabled, then the bound graphics pipeline /must/ have---     been created with---     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.PipelineViewportWScalingStateCreateInfoNV'::@viewportCount@---     greater or equal to the @viewportCount@ parameter in the last call---     to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'------ -   #VUID-vkCmdDraw-viewportCount-04138# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'---     and---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_NV'---     dynamic states enabled then the @viewportCount@ parameter in the---     last call to---     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV'---     /must/ be greater than or equal to the @viewportCount@ parameter in---     the last call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'------ -   #VUID-vkCmdDraw-None-09232# If a shader object is bound to any---     graphics stage, and the @VK_NV_clip_space_w_scaling@ extension is---     enabled on the device, then---     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV'---     must have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-08636# If a shader object is bound to any---     graphics stage, and the @VK_NV_clip_space_w_scaling@ extension is---     enabled on the device, then the @viewportCount@ parameter in the---     last call to---     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV'---     /must/ be greater than or equal to the @viewportCount@ parameter in---     the last call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'------ -   #VUID-vkCmdDraw-viewportCount-04139# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'---     dynamic state enabled, but not the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV'---     dynamic state enabled, then the bound graphics pipeline /must/ have---     been created with---     'Vulkan.Extensions.VK_NV_shading_rate_image.PipelineViewportShadingRateImageStateCreateInfoNV'::@viewportCount@---     greater or equal to the @viewportCount@ parameter in the last call---     to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'------ -   #VUID-vkCmdDraw-viewportCount-04140# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'---     and---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV'---     dynamic states enabled then the @viewportCount@ parameter in the---     last call to---     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV'---     /must/ be greater than or equal to the @viewportCount@ parameter in---     the last call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'------ -   #VUID-vkCmdDraw-shadingRateImage-09233# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>---     feature is enabled, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set rasterizerDiscardEnable to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetCoarseSampleOrderNV'---     must have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-shadingRateImage-09234# If a shader object is bound---     to any graphics stage, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>---     feature is enabled on the device, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set rasterizerDiscardEnable to---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV'---     in the current command buffer set shadingRateImageEnable to---     'Vulkan.Core10.FundamentalTypes.TRUE', then---     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV'---     must have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-08637# If a shader object is bound to any---     graphics stage, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>---     feature is enabled on the device, then the @viewportCount@ parameter---     in the last call to---     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV'---     /must/ be greater than or equal to the @viewportCount@ parameter in---     the last call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'------ -   #VUID-vkCmdDraw-VkPipelineVieportCreateInfo-04141# If the bound---     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'---     dynamic state enabled and a---     'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'---     structure chained from---     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo', then the---     bound graphics pipeline /must/ have been created with---     'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'::@viewportCount@---     greater or equal to the @viewportCount@ parameter in the last call---     to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'------ -   #VUID-vkCmdDraw-VkPipelineVieportCreateInfo-04142# If the bound---     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'---     dynamic state enabled and a---     'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'---     structure chained from---     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo', then the---     bound graphics pipeline /must/ have been created with---     'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'::@exclusiveScissorCount@---     greater or equal to the @viewportCount@ parameter in the last call---     to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'------ -   #VUID-vkCmdDraw-None-07878# If the bound graphics pipeline state was---     created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV'---     dynamic state enabled then---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-07879# If the bound graphics pipeline state was---     created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV'---     dynamic state enabled then---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-exclusiveScissor-09235# If a shader object is bound---     to any graphics stage, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>---     feature is enabled, then---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'---     must have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-08638# If a shader object is bound to any---     graphics stage, and the most recent call to---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'---     in the current command buffer set any element of---     @pExclusiveScissorEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE',---     then---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-04876# If the bound graphics pipeline state was---     created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE'---     dynamic state enabled then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-08639# If a shader object is bound to any---     graphics stage, then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-04877# If the bound graphics pipeline state was---     created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE'---     dynamic state enabled then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-08640# If a shader object is bound to any---     graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-logicOp-04878# If the bound graphics pipeline state---     was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetLogicOpEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command and the @logicOp@ /must/ be a valid---     'Vulkan.Core10.Enums.LogicOp.LogicOp' value------ -   #VUID-vkCmdDraw-None-08641# If a shader object is bound to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'---     stage, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>---     feature is enabled on the device, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetLogicOpEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command and the @logicOp@ /must/ be a valid---     'Vulkan.Core10.Enums.LogicOp.LogicOp' value------ -   #VUID-vkCmdDraw-primitiveFragmentShadingRateWithMultipleViewports-04552#---     If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>---     limit is not supported, the bound graphics pipeline was created with---     the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'---     dynamic state enabled, and any of the shader stages of the bound---     graphics pipeline write to the @PrimitiveShadingRateKHR@ built-in,---     then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'---     /must/ have been called in the current command buffer prior to this---     drawing command, and the @viewportCount@ parameter of---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'---     /must/ be @1@------ -   #VUID-vkCmdDraw-primitiveFragmentShadingRateWithMultipleViewports-08642#---     If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>---     limit is not supported, and any shader object bound to a graphics---     stage writes to the @PrimitiveShadingRateKHR@ built-in, then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'---     /must/ have been called in the current command buffer prior to this---     drawing command, and the @viewportCount@ parameter of---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'---     /must/ be @1@------ -   #VUID-vkCmdDraw-blendEnable-04727# If rasterization is not disabled---     in the bound graphics pipeline, then for each color attachment in---     the subpass, if the corresponding image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     do not contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT',---     then the @blendEnable@ member of the corresponding element of the---     @pAttachments@ member of @pColorBlendState@ /must/ be---     'Vulkan.Core10.FundamentalTypes.FALSE'------ -   #VUID-vkCmdDraw-None-08643# If a shader object is bound to any---     graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then for each color---     attachment in the render pass, if the corresponding image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     do not contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT',---     then the corresponding member of @pColorBlendEnables@ in the most---     recent call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'---     in the current command buffer that affected that attachment index---     /must/ have been 'Vulkan.Core10.FundamentalTypes.FALSE'------ -   #VUID-vkCmdDraw-multisampledRenderToSingleSampled-07284# If---     rasterization is not disabled in the bound graphics pipeline, and---     none of the @VK_AMD_mixed_attachment_samples@ extension, the---     @VK_NV_framebuffer_mixed_samples@ extension, or the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>---     feature is enabled, then @rasterizationSamples@ for the currently---     bound graphics pipeline /must/ be the same as the current subpass---     color and\/or depth\/stencil attachments------ -   #VUID-vkCmdDraw-None-08644# If a shader object is bound to any---     graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', and none of the---     @VK_AMD_mixed_attachment_samples@ extension, the---     @VK_NV_framebuffer_mixed_samples@ extension, or the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>---     feature is enabled, then the most recent call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'---     in the current command buffer /must/ have set @rasterizationSamples@---     to be the same as the number of samples for the current render pass---     color and\/or depth\/stencil attachments------ -   #VUID-vkCmdDraw-None-08876# If a shader object is bound to any---     graphics stage, the current render pass instance /must/ have been---     begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'------ -   #VUID-vkCmdDraw-imageView-06172# If the current render pass instance---     was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     the @imageView@ member of @pDepthAttachment@ is not---     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of---     @pDepthAttachment@ is---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL',---     this command /must/ not write any values to the depth attachment------ -   #VUID-vkCmdDraw-imageView-06173# If the current render pass instance---     was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     the @imageView@ member of @pStencilAttachment@ is not---     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of---     @pStencilAttachment@ is---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL',---     this command /must/ not write any values to the stencil attachment------ -   #VUID-vkCmdDraw-imageView-06174# If the current render pass instance---     was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     the @imageView@ member of @pDepthAttachment@ is not---     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of---     @pDepthAttachment@ is---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL',---     this command /must/ not write any values to the depth attachment------ -   #VUID-vkCmdDraw-imageView-06175# If the current render pass instance---     was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     the @imageView@ member of @pStencilAttachment@ is not---     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of---     @pStencilAttachment@ is---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL',---     this command /must/ not write any values to the stencil attachment------ -   #VUID-vkCmdDraw-imageView-06176# If the current render pass instance---     was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     the @imageView@ member of @pDepthAttachment@ is not---     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of---     @pDepthAttachment@ is---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL',---     this command /must/ not write any values to the depth attachment------ -   #VUID-vkCmdDraw-imageView-06177# If the current render pass instance---     was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     the @imageView@ member of @pStencilAttachment@ is not---     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of---     @pStencilAttachment@ is---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL',---     this command /must/ not write any values to the stencil attachment------ -   #VUID-vkCmdDraw-viewMask-06178# If the current render pass instance---     was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     the currently bound graphics pipeline /must/ have been created with---     a---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@viewMask@---     equal to---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@viewMask@------ -   #VUID-vkCmdDraw-colorAttachmentCount-06179# If the current render---     pass instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     the currently bound graphics pipeline /must/ have been created with---     a---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@colorAttachmentCount@---     equal to---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@------ -   #VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-08910# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>---     feature is not enabled, and the current render pass instance was---     begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'---     and---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@---     greater than @0@, then each element of the---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@---     array with a @imageView@ not equal to---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created---     with a 'Vulkan.Core10.Enums.Format.Format' equal to the---     corresponding element of---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@---     used to create the currently bound graphics pipeline------ -   #VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-08911# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>---     feature is enabled, and the current render pass instance was begun---     with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'---     and---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@---     greater than @0@, then each element of the---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@---     array with a @imageView@ not equal to---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created---     with a 'Vulkan.Core10.Enums.Format.Format' equal to the---     corresponding element of---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@---     used to create the currently bound graphics pipeline, or the---     corresponding element of---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,---     if it exists, /must/ be---     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'------ -   #VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-08912# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>---     feature is not enabled, and the current render pass instance was---     begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'---     and---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@---     greater than @0@, then each element of the---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@---     array with a @imageView@ equal to---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have the---     corresponding element of---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@---     used to create the currently bound pipeline equal to---     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'------ -   #VUID-vkCmdDraw-colorAttachmentCount-09362# If the current render---     pass instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     with a---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@---     equal to @1@, there is no shader object bound to any graphics stage,---     and a color attachment with a resolve mode of---     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',---     each element of the---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@---     array with a @resolveImageView@ not equal to---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created---     with an image created with a---     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@---     value equal to the---     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@---     value used to create the currently bound graphics pipeline------ -   #VUID-vkCmdDraw-None-09363# If there is no shader object bound to---     any graphics stage, the current render pass instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'---     and a---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@---     equal to @1@, and a color attachment with a resolve mode of---     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',---     each element of the---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@---     array with a @imageView@ not equal to---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created---     with an image created with a---     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@---     value equal to the---     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@---     value used to create the currently bound graphics pipeline------ -   #VUID-vkCmdDraw-None-09364# If the current render pass instance was---     begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     there is no shader object bound to any graphics stage, and the---     currently bound graphics pipeline was created with a non-zero---     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@---     value and with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'---     dynamic state enabled, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'---     /must/ have set the blend enable to---     'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command------ -   #VUID-vkCmdDraw-None-09365# If the current render pass instance was---     begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     there is no shader object bound to any graphics stage, and the---     currently bound graphics pipeline was created with a non-zero---     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@---     value and with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'---     dynamic state enabled, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'---     /must/ have set @rasterizationSamples@ to---     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior---     to this drawing command------ -   #VUID-vkCmdDraw-None-09366# If there is a shader object bound to any---     graphics stage, and the current render pass includes a color---     attachment that uses the---     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'---     resolve mode, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'---     /must/ have set blend enable to---     'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command------ -   #VUID-vkCmdDraw-rasterizationSamples-09367# If there is a shader---     object bound to any graphics stage, and the current render pass---     includes a color attachment that uses the---     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'---     resolve mode, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'---     /must/ have set @rasterizationSamples@ to---     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior---     to this drawing command------ -   #VUID-vkCmdDraw-None-09368# If the current render pass instance was---     begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     there is no shader object bound to any graphics stage, and the---     currently bound graphics pipeline was created with a non-zero---     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@---     value and with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'---     dynamic state enabled, then---     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'---     /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing---     command------ -   #VUID-vkCmdDraw-None-09369# If the current render pass instance was---     begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     there is no shader object bound to any graphics stage, and the---     currently bound graphics pipeline was created with a non-zero---     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@---     value and with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'---     dynamic state enabled, then---     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'---     /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing---     command------ -   #VUID-vkCmdDraw-pFragmentSize-09370# If there is a shader object---     bound to any graphics stage, and the current render pass includes a---     color attachment that uses the---     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'---     resolve mode, then---     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'---     /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing---     command------ -   #VUID-vkCmdDraw-pFragmentSize-09371# If there is a shader object---     bound to any graphics stage, and the current render pass includes a---     color attachment that uses the---     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'---     resolve mode, then---     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'---     /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing---     command------ -   #VUID-vkCmdDraw-None-07749# If the bound graphics pipeline state was---     created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-08646# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>---     feature is enabled on the device, and a shader object is bound to---     the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'---     stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-attachmentCount-07750# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'---     dynamic state enabled then the @attachmentCount@ parameter of---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'---     /must/ be greater than or equal to the---     'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo'::@attachmentCount@---     of the currently bound graphics pipeline------ -   #VUID-vkCmdDraw-None-08647# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>---     feature is enabled on the device, and a shader object is bound to---     the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'---     stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then the @attachmentCount@---     parameter of most recent call to---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'---     in the current command buffer /must/ be greater than or equal to the---     number of color attachments in the current render pass instance------ -   #VUID-vkCmdDraw-None-07751# If the bound graphics pipeline state was---     created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command for each discard rectangle in---     'Vulkan.Extensions.VK_EXT_discard_rectangles.PipelineDiscardRectangleStateCreateInfoEXT'::@discardRectangleCount@------ -   #VUID-vkCmdDraw-None-07880# If the bound graphics pipeline state was---     created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-rasterizerDiscardEnable-09236# If the---     @VK_EXT_discard_rectangles@ extension is enabled, and a shader---     object is bound to any graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-08648# If the @VK_EXT_discard_rectangles@---     extension is enabled, and a shader object is bound to any graphics---     stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-07881# If the bound graphics pipeline state was---     created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-08649# If the @VK_EXT_discard_rectangles@---     extension is enabled, and a shader object is bound to any graphics---     stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'---     in the current command buffer set @discardRectangleEnable@ to---     'Vulkan.Core10.FundamentalTypes.TRUE', then---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-08913# If the---     current render pass instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>---     feature is not enabled, and---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@---     was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@---     used to create the currently bound graphics pipeline /must/ be equal---     to 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'------ -   #VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-08914# If current---     render pass instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>---     feature is not enabled, and---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@---     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@---     used to create the currently bound graphics pipeline /must/ be equal---     to the 'Vulkan.Core10.Enums.Format.Format' used to create---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@------ -   #VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-08915# If the---     current render pass instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>---     feature is enabled,---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@---     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the value of---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@---     used to create the currently bound graphics pipeline was not equal---     to the 'Vulkan.Core10.Enums.Format.Format' used to create---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@,---     the value of the format /must/ be---     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'------ -   #VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-08916# If the---     current render pass instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>---     feature is not enabled, and---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@---     was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@---     used to create the currently bound graphics pipeline /must/ be equal---     to 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'------ -   #VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-08917# If current---     render pass instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>---     feature is not enabled, and---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@---     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@---     used to create the currently bound graphics pipeline /must/ be equal---     to the 'Vulkan.Core10.Enums.Format.Format' used to create---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@------ -   #VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-08918# If the---     current render pass instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>---     feature is enabled,---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@---     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the value of---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@---     used to create the currently bound graphics pipeline was not equal---     to the 'Vulkan.Core10.Enums.Format.Format' used to create---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@,---     the value of the format /must/ be---     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'------ -   #VUID-vkCmdDraw-imageView-06183# If the current render pass instance---     was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'---     and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentShadingRateAttachmentInfoKHR'::@imageView@---     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the currently---     bound graphics pipeline /must/ have been created with---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'------ -   #VUID-vkCmdDraw-imageView-06184# If the current render pass instance---     was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'---     and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT'::@imageView@---     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the currently---     bound graphics pipeline /must/ have been created with---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT'------ -   #VUID-vkCmdDraw-colorAttachmentCount-06185# If the currently bound---     pipeline was created with a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     structure, and the current render pass instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'---     with a---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@---     parameter greater than @0@, then each element of the---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@---     array with a @imageView@ not equal to---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created---     with a sample count equal to the corresponding element of the---     @pColorAttachmentSamples@ member of---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     used to create the currently bound graphics pipeline------ -   #VUID-vkCmdDraw-pDepthAttachment-06186# If the current render pass---     instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     the currently bound pipeline was created with a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     structure, and---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@---     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the---     @depthStencilAttachmentSamples@ member of---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     used to create the currently bound graphics pipeline /must/ be equal---     to the sample count used to create---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@------ -   #VUID-vkCmdDraw-pStencilAttachment-06187# If the current render pass---     instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     the currently bound pipeline was created with a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     structure, and---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@---     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the---     @depthStencilAttachmentSamples@ member of---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     used to create the currently bound graphics pipeline /must/ be equal---     to the sample count used to create---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@------ -   #VUID-vkCmdDraw-multisampledRenderToSingleSampled-07285# If the---     currently bound pipeline was created without a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     structure, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>---     feature is not enabled, and the current render pass instance was---     begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'---     with a---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@---     parameter greater than @0@, then each element of the---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@---     array with a @imageView@ not equal to---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created---     with a sample count equal to the value of @rasterizationSamples@ for---     the currently bound graphics pipeline------ -   #VUID-vkCmdDraw-multisampledRenderToSingleSampled-07286# If the---     current render pass instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     the currently bound pipeline was created without a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     structure, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>---     feature is not enabled, and---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@---     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of---     @rasterizationSamples@ for the currently bound graphics pipeline---     /must/ be equal to the sample count used to create---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@------ -   #VUID-vkCmdDraw-multisampledRenderToSingleSampled-07287# If the---     current render pass instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     the currently bound pipeline was created without a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     structure, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>---     feature is not enabled, and---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@---     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of---     @rasterizationSamples@ for the currently bound graphics pipeline---     /must/ be equal to the sample count used to create---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@------ -   #VUID-vkCmdDraw-pNext-07935# If this command has been called inside---     a render pass instance started with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     and the @pNext@ chain of---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'---     includes a---     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'---     structure with @multisampledRenderToSingleSampledEnable@ equal to---     'Vulkan.Core10.FundamentalTypes.TRUE', then the value of---     @rasterizationSamples@ for the currently bound graphics pipeline---     /must/ be equal to---     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'::@rasterizationSamples@------ -   #VUID-vkCmdDraw-renderPass-06198# If the current render pass---     instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     the currently bound pipeline /must/ have been created with a---     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@renderPass@---     equal to 'Vulkan.Core10.APIConstants.NULL_HANDLE'------ -   #VUID-vkCmdDraw-pColorAttachments-08963# If the current render pass---     instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     there is a graphics pipeline bound with a fragment shader that---     statically writes to a color attachment, the color write mask is not---     zero, color writes are enabled, and the corresponding element of the---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments->imageView@---     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the---     corresponding element of---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@---     used to create the pipeline /must/ not be---     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'------ -   #VUID-vkCmdDraw-pDepthAttachment-08964# If the current render pass---     instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     there is a graphics pipeline bound, depth test is enabled, depth---     write is enabled, and the---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@---     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@---     used to create the pipeline /must/ not be---     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'------ -   #VUID-vkCmdDraw-pStencilAttachment-08965# If the current render pass---     instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     there is a graphics pipeline bound, stencil test is enabled and the---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@---     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@---     used to create the pipeline /must/ not be---     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'------ -   #VUID-vkCmdDraw-primitivesGeneratedQueryWithRasterizerDiscard-06708#---     If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithRasterizerDiscard primitivesGeneratedQueryWithRasterizerDiscard>---     feature is not enabled and the---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'---     query is active,---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-discard rasterization discard>---     /must/ not be enabled------ -   #VUID-vkCmdDraw-primitivesGeneratedQueryWithNonZeroStreams-06709# If---     the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams primitivesGeneratedQueryWithNonZeroStreams>---     feature is not enabled and the---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'---     query is active, the bound graphics pipeline /must/ not have been---     created with a non-zero value in---     'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT'::@rasterizationStream@------ -   #VUID-vkCmdDraw-None-07619# If the bound graphics pipeline state was---     created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetTessellationDomainOriginEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-07620# If the bound graphics pipeline state was---     created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-09237# If a shader object is bound to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'---     stage, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetTessellationDomainOriginEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-08650# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClamp depthClamp>---     feature is enabled, and a shader object is bound to any graphics---     stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-07621# If the bound graphics pipeline state was---     created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_POLYGON_MODE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-08651# If a shader object is bound to any---     graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-07622# If the bound graphics pipeline state was---     created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-08652# If a shader object is bound to any---     graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-07623# If the bound graphics pipeline state was---     created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-08653# If a shader object is bound to any---     graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-07624# If the bound graphics pipeline state was---     created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-alphaToCoverageEnable-08919# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT'---     dynamic state enabled, and @alphaToCoverageEnable@ was---     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT',---     then the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutput Fragment Output Interface>---     /must/ contain a variable for the alpha @Component@ word in---     @Location@ 0 at @Index@ 0------ -   #VUID-vkCmdDraw-None-08654# If a shader object is bound to any---     graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-alphaToCoverageEnable-08920# If a shader object is---     bound to any graphics stage, and the most recent call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'---     in the current command buffer set @alphaToCoverageEnable@ to---     'Vulkan.Core10.FundamentalTypes.TRUE', then the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutput Fragment Output Interface>---     /must/ contain a variable for the alpha @Component@ word in---     @Location@ 0 at @Index@ 0------ -   #VUID-vkCmdDraw-None-07625# If the bound graphics pipeline state was---     created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToOneEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-08655# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-alphaToOne alphaToOne>---     feature is enabled, and a shader object is bound to any graphics---     stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToOneEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-07626# If the bound graphics pipeline state was---     created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLogicOpEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-08656# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>---     feature is enabled, and a shader object is bound to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'---     stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLogicOpEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-07627# If the bound graphics pipeline state was---     created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-08657# If a shader object is bound to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'---     stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-07628# If the bound graphics pipeline state was---     created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-08658# If a shader object is bound to any---     graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'---     for any attachment set that attachment’s value in---     @pColorBlendEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-07629# If the bound graphics pipeline state was---     created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-08659# If a shader object is bound to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'---     stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-07630# If the bound graphics pipeline state was---     created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_STREAM_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-08660# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryStreams geometryStreams>---     feature is enabled, and a shader object is bound to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'---     stage, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-07631# If the bound graphics pipeline state was---     created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-08661# If the---     @VK_EXT_conservative_rasterization@ extension is enabled, and a---     shader object is bound to any graphics stage, and the most recent---     call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-07632# If the bound graphics pipeline state was---     created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetExtraPrimitiveOverestimationSizeEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-08662# If the---     @VK_EXT_conservative_rasterization@ extension is enabled, and a---     shader object is bound to any graphics stage, and the most recent---     call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'---     in the current command buffer set @conservativeRasterizationMode@ to---     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT',---     then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetExtraPrimitiveOverestimationSizeEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-07633# If the bound graphics pipeline state was---     created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-08663# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipEnable depthClipEnable>---     feature is enabled, and a shader object is bound to any graphics---     stage, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-07634# If the bound graphics pipeline state was---     created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-08664# If the @VK_EXT_sample_locations@---     extension is enabled, and a shader object is bound to any graphics---     stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-07635# If the bound graphics pipeline state was---     created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-07636# If the bound graphics pipeline state was---     created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetProvokingVertexModeEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-08665# If the @VK_EXT_provoking_vertex@---     extension is enabled, and a shader object is bound to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'---     stage, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetProvokingVertexModeEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-07637# If the bound graphics pipeline state was---     created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-08666# If the @VK_EXT_line_rasterization@---     extension is enabled, and a shader object is bound to any graphics---     stage, and the most recent call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'---     in the current command buffer set @polygonMode@ to---     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-08667# If the @VK_EXT_line_rasterization@---     extension is enabled, and a shader object is bound to the vertex---     stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'---     in the current command buffer set @primitiveTopology@ to any line---     topology, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-08668# If the @VK_EXT_line_rasterization@---     extension is enabled, and a shader object that outputs line---     primitives is bound to the tessellation evaluation or geometry---     stage, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-07638# If the bound graphics pipeline state was---     created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-08669# If the @VK_EXT_line_rasterization@---     extension is enabled, and a shader object is bound to any graphics---     stage, and the most recent call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'---     in the current command buffer set @polygonMode@ to---     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-08670# If the @VK_EXT_line_rasterization@---     extension is enabled, and a shader object is bound to the vertex---     stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'---     in the current command buffer set @primitiveTopology@ to any line---     topology, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-08671# If the @VK_EXT_line_rasterization@---     extension is enabled, and a shader object that outputs line---     primitives is bound to the tessellation evaluation or geometry---     stage, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-07849# If the bound graphics pipeline state was---     created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-08672# If the @VK_EXT_line_rasterization@---     extension is enabled, and a shader object is bound to any graphics---     stage, and the most recent call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'---     in the current command buffer set @stippledLineEnable@ to---     'Vulkan.Core10.FundamentalTypes.TRUE', then---     'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-07639# If the bound graphics pipeline state was---     created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipNegativeOneToOneEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-08673# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipControl depthClipControl>---     feature is enabled, and a shader object is bound to any graphics---     stage, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipNegativeOneToOneEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-07640# If the bound graphics pipeline state was---     created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportWScalingEnableNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-08674# If the @VK_NV_clip_space_w_scaling@---     extension is enabled, and a shader object is bound to any graphics---     stage, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportWScalingEnableNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-07641# If the bound graphics pipeline state was---     created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportSwizzleNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-08675# If the @VK_NV_viewport_swizzle@---     extension is enabled, and a shader object is bound to any graphics---     stage, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportSwizzleNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-07642# If the bound graphics pipeline state was---     created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-08676# If the---     @VK_NV_fragment_coverage_to_color@ extension is enabled, and a---     shader object is bound to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'---     stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-07643# If the bound graphics pipeline state was---     created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-08677# If the---     @VK_NV_fragment_coverage_to_color@ extension is enabled, and a---     shader object is bound to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'---     stage, and the most recent call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'---     in the current command buffer set @coverageToColorEnable@ to---     'Vulkan.Core10.FundamentalTypes.TRUE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-07644# If the bound graphics pipeline state was---     created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-08678# If the @VK_NV_framebuffer_mixed_samples@---     extension is enabled, and a shader object is bound to any graphics---     stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-07645# If the bound graphics pipeline state was---     created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-08679# If the @VK_NV_framebuffer_mixed_samples@---     extension is enabled, and a shader object is bound to any graphics---     stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV'---     in the current command buffer set coverageModulationMode to any---     value other than---     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.COVERAGE_MODULATION_MODE_NONE_NV',---     then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-07646# If the bound graphics pipeline state was---     created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-08680# If the @VK_NV_framebuffer_mixed_samples@---     extension is enabled, and a shader object is bound to any graphics---     stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'---     in the current command buffer set @coverageModulationTableEnable@ to---     'Vulkan.Core10.FundamentalTypes.TRUE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-07647# If the bound graphics pipeline state was---     created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-pipelineFragmentShadingRate-09238# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate>---     feature is enabled, and a shader object is bound to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'---     stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set rasterizerDiscardEnable to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'---     must have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-08681# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>---     feature is enabled, and a shader object is bound to any graphics---     stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-07648# If the bound graphics pipeline state was---     created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-08682# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-representativeFragmentTest representativeFragmentTest>---     feature is enabled, and a shader object is bound to any graphics---     stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-07649# If the bound graphics pipeline state was---     created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-08683# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-coverageReductionMode coverageReductionMode>---     feature is enabled, and a shader object is bound to any graphics---     stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-pColorBlendEnables-07470# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'---     state enabled and the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'---     set @pColorBlendEnables@ for any attachment to---     'Vulkan.Core10.FundamentalTypes.TRUE', then for those attachments in---     the subpass the corresponding image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT'------ -   #VUID-vkCmdDraw-rasterizationSamples-07471# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'---     state enabled, and the current subpass does not use any color---     and\/or depth\/stencil attachments, then the @rasterizationSamples@---     in the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'---     /must/ follow the rules for a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-noattachments zero-attachment subpass>------ -   #VUID-vkCmdDraw-samples-07472# If the bound graphics pipeline state---     was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT'---     state enabled and the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'---     state disabled, then the @samples@ parameter in the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'---     /must/ be greater or equal to the---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@---     parameter used to create the bound graphics pipeline------ -   #VUID-vkCmdDraw-samples-07473# If the bound graphics pipeline state---     was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT'---     state and---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'---     states enabled, then the @samples@ parameter in the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'---     /must/ be greater or equal to the @rasterizationSamples@ parameter---     in the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'------ -   #VUID-vkCmdDraw-rasterizationSamples-07474# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'---     state enabled, and neither the @VK_AMD_mixed_attachment_samples@ nor---     the @VK_NV_framebuffer_mixed_samples@ extensions are enabled, then---     the @rasterizationSamples@ in the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'---     /must/ be the same as the current subpass color and\/or---     depth\/stencil attachments------ -   #VUID-vkCmdDraw-None-09211# If the bound graphics pipeline state was---     created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'---     state enabled, or a shader object is bound to any graphics stage,---     and the current render pass instance includes a---     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'---     structure with @multisampledRenderToSingleSampledEnable@ equal to---     'Vulkan.Core10.FundamentalTypes.TRUE', then the---     @rasterizationSamples@ in the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'---     /must/ be the same as the @rasterizationSamples@ member of that---     structure------ -   #VUID-vkCmdDraw-firstAttachment-07476# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command, and the attachments specified by the---     @firstAttachment@ and @attachmentCount@ parameters of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'---     calls /must/ specify an enable for all active color attachments in---     the current subpass------ -   #VUID-vkCmdDraw-firstAttachment-07477# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command, and the attachments specified by the---     @firstAttachment@ and @attachmentCount@ parameters of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'---     calls /must/ specify the blend equations for all active color---     attachments in the current subpass where blending is enabled------ -   #VUID-vkCmdDraw-firstAttachment-07478# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command, and the attachments specified by the---     @firstAttachment@ and @attachmentCount@ parameters of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'---     calls /must/ specify the color write mask for all active color---     attachments in the current subpass------ -   #VUID-vkCmdDraw-firstAttachment-07479# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command, and the attachments specified by the---     @firstAttachment@ and @attachmentCount@ parameters of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'---     calls /must/ specify the advanced blend equations for all active---     color attachments in the current subpass where blending is enabled------ -   #VUID-vkCmdDraw-advancedBlendMaxColorAttachments-07480# If the bound---     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT'---     and---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'---     dynamic states enabled and the last calls to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'---     and---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'---     have enabled advanced blending, then the number of active color---     attachments in the current subpass /must/ not exceed---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-advancedBlendMaxColorAttachments advancedBlendMaxColorAttachments>------ -   #VUID-vkCmdDraw-primitivesGeneratedQueryWithNonZeroStreams-07481# If---     the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams primitivesGeneratedQueryWithNonZeroStreams>---     feature is not enabled and the---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'---     query is active, and the bound graphics pipeline was created with---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_STREAM_EXT'---     state enabled, the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT'---     /must/ have set the @rasterizationStream@ to zero------ -   #VUID-vkCmdDraw-sampleLocationsPerPixel-07482# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'---     state enabled and the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'---     state disabled, then the @sampleLocationsPerPixel@ member of---     @pSampleLocationsInfo@ in the last call to---     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'---     /must/ equal the @rasterizationSamples@ member of the---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'---     structure the bound graphics pipeline has been created with------ -   #VUID-vkCmdDraw-sampleLocationsPerPixel-07483# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'---     state enabled and the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'---     state enabled, then the @sampleLocationsPerPixel@ member of---     @pSampleLocationsInfo@ in the last call to---     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'---     /must/ equal the @rasterizationSamples@ parameter of the last call---     to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'------ -   #VUID-vkCmdDraw-sampleLocationsEnable-07484# If the bound graphics---     pipeline was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'---     state enabled, and @sampleLocationsEnable@ was---     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',---     and the current subpass has a depth\/stencil attachment, then that---     attachment /must/ have been created with the---     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT'---     bit set------ -   #VUID-vkCmdDraw-sampleLocationsEnable-07485# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'---     state enabled and the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'---     state enabled, and if @sampleLocationsEnable@ was---     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',---     then the @sampleLocationsInfo.sampleLocationGridSize.width@ in the---     last call to---     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'---     /must/ evenly divide---     'Vulkan.Extensions.VK_EXT_sample_locations.MultisamplePropertiesEXT'::@sampleLocationGridSize.width@---     as returned by---     'Vulkan.Extensions.VK_EXT_sample_locations.getPhysicalDeviceMultisamplePropertiesEXT'---     with a @samples@ parameter equaling @rasterizationSamples@------ -   #VUID-vkCmdDraw-sampleLocationsEnable-07486# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'---     state enabled and the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'---     state enabled, and if @sampleLocationsEnable@ was---     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',---     then the @sampleLocationsInfo.sampleLocationGridSize.height@ in the---     last call to---     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'---     /must/ evenly divide---     'Vulkan.Extensions.VK_EXT_sample_locations.MultisamplePropertiesEXT'::@sampleLocationGridSize.height@---     as returned by---     'Vulkan.Extensions.VK_EXT_sample_locations.getPhysicalDeviceMultisamplePropertiesEXT'---     with a @samples@ parameter equaling @rasterizationSamples@------ -   #VUID-vkCmdDraw-sampleLocationsEnable-07487# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'---     state enabled, and if @sampleLocationsEnable@ was---     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',---     the fragment shader code /must/ not statically use the extended---     instruction @InterpolateAtSample@------ -   #VUID-vkCmdDraw-sampleLocationsEnable-07936# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'---     state disabled and the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'---     state enabled, the @sampleLocationsEnable@ member of a---     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@---     in the bound graphics pipeline is---     'Vulkan.Core10.FundamentalTypes.TRUE' or---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'---     state enabled, then,---     @sampleLocationsInfo.sampleLocationGridSize.width@ /must/ evenly---     divide---     'Vulkan.Extensions.VK_EXT_sample_locations.MultisamplePropertiesEXT'::@sampleLocationGridSize.width@---     as returned by---     'Vulkan.Extensions.VK_EXT_sample_locations.getPhysicalDeviceMultisamplePropertiesEXT'---     with a @samples@ parameter equaling the value of---     @rasterizationSamples@ in the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'------ -   #VUID-vkCmdDraw-sampleLocationsEnable-07937# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'---     state disabled and the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'---     state enabled, the @sampleLocationsEnable@ member of a---     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@---     in the bound graphics pipeline is---     'Vulkan.Core10.FundamentalTypes.TRUE' or---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'---     state enabled, then,---     @sampleLocationsInfo.sampleLocationGridSize.height@ /must/ evenly---     divide---     'Vulkan.Extensions.VK_EXT_sample_locations.MultisamplePropertiesEXT'::@sampleLocationGridSize.height@---     as returned by---     'Vulkan.Extensions.VK_EXT_sample_locations.getPhysicalDeviceMultisamplePropertiesEXT'---     with a @samples@ parameter equaling the value of---     @rasterizationSamples@ in the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'------ -   #VUID-vkCmdDraw-sampleLocationsEnable-07938# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'---     state disabled and the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'---     state enabled, the @sampleLocationsEnable@ member of a---     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@---     in the bound graphics pipeline is---     'Vulkan.Core10.FundamentalTypes.TRUE' or---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'---     state enabled, then, @sampleLocationsInfo.sampleLocationsPerPixel@---     /must/ equal @rasterizationSamples@ in the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'------ -   #VUID-vkCmdDraw-coverageModulationTableEnable-07488# If the bound---     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV'---     state enabled and the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'---     set @coverageModulationTableEnable@ to---     'Vulkan.Core10.FundamentalTypes.TRUE', then the---     @coverageModulationTableCount@ parameter in the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV'---     /must/ equal the current @rasterizationSamples@ divided by the---     number of color samples in the current subpass------ -   #VUID-vkCmdDraw-rasterizationSamples-07489# If the---     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and if---     current subpass has a depth\/stencil attachment and depth test,---     stencil test, or depth bounds test are enabled in the currently---     bound pipeline state, then the current @rasterizationSamples@ /must/---     be the same as the sample count of the depth\/stencil attachment------ -   #VUID-vkCmdDraw-coverageToColorEnable-07490# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV'---     state enabled and the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'---     set the @coverageToColorEnable@ to---     'Vulkan.Core10.FundamentalTypes.TRUE', then the current subpass---     /must/ have a color attachment at the location selected by the last---     call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV'---     @coverageToColorLocation@, with a---     'Vulkan.Core10.Enums.Format.Format' of---     'Vulkan.Core10.Enums.Format.FORMAT_R8_UINT',---     'Vulkan.Core10.Enums.Format.FORMAT_R8_SINT',---     'Vulkan.Core10.Enums.Format.FORMAT_R16_UINT',---     'Vulkan.Core10.Enums.Format.FORMAT_R16_SINT',---     'Vulkan.Core10.Enums.Format.FORMAT_R32_UINT', or---     'Vulkan.Core10.Enums.Format.FORMAT_R32_SINT'------ -   #VUID-vkCmdDraw-coverageReductionMode-07491# If this---     @VK_NV_coverage_reduction_mode@ extension is enabled, the bound---     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV'---     and---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'---     states enabled, the current coverage reduction mode---     @coverageReductionMode@, then the current @rasterizationSamples@,---     and the sample counts for the color and depth\/stencil attachments---     (if the subpass has them) /must/ be a valid combination returned by---     'Vulkan.Extensions.VK_NV_coverage_reduction_mode.getPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV'------ -   #VUID-vkCmdDraw-viewportCount-07492# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'---     dynamic state enabled, but not the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV'---     dynamic state enabled, then the bound graphics pipeline /must/ have---     been created with---     'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'::@viewportCount@---     greater or equal to the @viewportCount@ parameter in the last call---     to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'------ -   #VUID-vkCmdDraw-viewportCount-07493# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'---     and---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV'---     dynamic states enabled then the @viewportCount@ parameter in the---     last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportSwizzleNV'---     /must/ be greater than or equal to the @viewportCount@ parameter in---     the last call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'------ -   #VUID-vkCmdDraw-rasterizationSamples-07494# If the---     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and if the---     current subpass has any color attachments and @rasterizationSamples@---     of the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'---     is greater than the number of color samples, then the pipeline---     @sampleShadingEnable@ /must/ be---     'Vulkan.Core10.FundamentalTypes.FALSE'------ -   #VUID-vkCmdDraw-stippledLineEnable-07495# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'---     or---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'---     dynamic states enabled, and if the current @stippledLineEnable@---     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current---     @lineRasterizationMode@ state is---     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_EXT',---     then the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>---     feature /must/ be enabled------ -   #VUID-vkCmdDraw-stippledLineEnable-07496# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'---     or---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'---     dynamic states enabled, and if the current @stippledLineEnable@---     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current---     @lineRasterizationMode@ state is---     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_BRESENHAM_EXT',---     then the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>---     feature /must/ be enabled------ -   #VUID-vkCmdDraw-stippledLineEnable-07497# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'---     or---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'---     dynamic states enabled, and if the current @stippledLineEnable@---     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current---     @lineRasterizationMode@ state is---     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT',---     then the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>---     feature /must/ be enabled------ -   #VUID-vkCmdDraw-stippledLineEnable-07498# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'---     or---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'---     dynamic states enabled, and if the current @stippledLineEnable@---     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current---     @lineRasterizationMode@ state is---     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_DEFAULT_EXT',---     then the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>---     feature /must/ be enabled and---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@strictLines@---     /must/ be 'Vulkan.Core10.FundamentalTypes.TRUE'------ -   #VUID-vkCmdDraw-conservativePointAndLineRasterization-07499# If the---     bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT'---     dynamic state enabled,---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-conservativePointAndLineRasterization conservativePointAndLineRasterization>---     is not supported, and the effective primitive topology output by the---     last pre-rasterization shader stage is a line or point, then the---     @conservativeRasterizationMode@ set by the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'---     /must/ be---     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT'------ -   #VUID-vkCmdDraw-stage-07073# If the currently bound pipeline was---     created with the---     'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@---     member of an element of---     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pStages@ set---     to---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT',---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT',---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'---     or---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT',---     then---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-mesh-shader Mesh Shader Queries>---     /must/ not be active------ -   #VUID-vkCmdDraw-None-08877# If the bound graphics pipeline state was---     created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'---     dynamic state---     'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-07850# If dynamic state was inherited from---     'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV',---     it /must/ be set in the current command buffer prior to this drawing---     command------ -   #VUID-vkCmdDraw-None-08684# If there is no bound graphics pipeline,---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/---     have been called in the current command buffer with @pStages@ with---     an element of---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'------ -   #VUID-vkCmdDraw-None-08685# If there is no bound graphics pipeline,---     and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>---     feature is enabled,---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/---     have been called in the current command buffer with @pStages@ with---     an element of---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT'------ -   #VUID-vkCmdDraw-None-08686# If there is no bound graphics pipeline,---     and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>---     feature is enabled,---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/---     have been called in the current command buffer with @pStages@ with---     an element of---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'------ -   #VUID-vkCmdDraw-None-08687# If there is no bound graphics pipeline,---     and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader>---     feature is enabled,---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/---     have been called in the current command buffer with @pStages@ with---     an element of---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'------ -   #VUID-vkCmdDraw-None-08688# If there is no bound graphics pipeline,---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/---     have been called in the current command buffer with @pStages@ with---     an element of---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'------ -   #VUID-vkCmdDraw-None-08689# If there is no bound graphics pipeline,---     and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>---     feature is enabled,---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/---     have been called in the current command buffer with @pStages@ with---     an element of---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'------ -   #VUID-vkCmdDraw-None-08690# If there is no bound graphics pipeline,---     and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>---     feature is enabled,---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/---     have been called in the current command buffer with @pStages@ with---     an element of---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'------ -   #VUID-vkCmdDraw-None-08693# If there is no bound graphics pipeline,---     and at least one of the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>---     and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>---     features is enabled, one of the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' or---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'---     stages /must/ have a valid 'Vulkan.Extensions.Handles.ShaderEXT'---     bound, and the other /must/ have no---     'Vulkan.Extensions.Handles.ShaderEXT' bound------ -   #VUID-vkCmdDraw-None-08694# If there is no bound graphics pipeline,---     and both the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>---     and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>---     features are enabled, and a valid---     'Vulkan.Extensions.Handles.ShaderEXT' is bound the to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'---     stage, and that 'Vulkan.Extensions.Handles.ShaderEXT' was created---     without the---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_NO_TASK_SHADER_BIT_EXT'---     flag, a valid 'Vulkan.Extensions.Handles.ShaderEXT' /must/ be bound---     to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'---     stage------ -   #VUID-vkCmdDraw-None-08695# If there is no bound graphics pipeline,---     and both the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>---     and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>---     features are enabled, and a valid---     'Vulkan.Extensions.Handles.ShaderEXT' is bound the to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'---     stage, and that 'Vulkan.Extensions.Handles.ShaderEXT' was created---     with the---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_NO_TASK_SHADER_BIT_EXT'---     flag, there /must/ be no 'Vulkan.Extensions.Handles.ShaderEXT' bound---     to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'---     stage------ -   #VUID-vkCmdDraw-None-08696# If there is no bound graphics pipeline,---     and a valid 'Vulkan.Extensions.Handles.ShaderEXT' is bound to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'---     stage, there /must/ be no 'Vulkan.Extensions.Handles.ShaderEXT'---     bound to either the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'---     stage or the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'---     stage------ -   #VUID-vkCmdDraw-None-08698# If any graphics shader is bound which---     was created with the---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'---     flag, then all shaders created with the---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'---     flag in the same---     'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call---     /must/ also be bound------ -   #VUID-vkCmdDraw-None-08699# If any graphics shader is bound which---     was created with the---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'---     flag, any stages in between stages whose shaders which did not---     create a shader with the---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'---     flag as part of the same---     'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call---     /must/ not have any 'Vulkan.Extensions.Handles.ShaderEXT' bound------ -   #VUID-vkCmdDraw-None-08878# All bound graphics shader objects /must/---     have been created with identical or identically defined push---     constant ranges------ -   #VUID-vkCmdDraw-None-08879# All bound graphics shader objects /must/---     have been created with identical or identically defined arrays of---     descriptor set layouts------ -   #VUID-vkCmdDraw-colorAttachmentCount-09372# If the current render---     pass instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'---     and a---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@---     equal to @1@, a color attachment with a resolve mode of---     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',---     and a fragment shader is bound, it /must/ not declare the---     @DepthReplacing@ or @StencilRefReplacingEXT@ execution modes------ -   #VUID-vkCmdDraw-None-08880# If a shader object is bound to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'---     stage and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFeedbackLoopDynamicState attachmentFeedbackLoopDynamicState>---     feature is enabled on the device, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE'---     'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-pDynamicStates-08715# If the bound graphics pipeline---     state includes a fragment shader stage, was created with---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'---     set in---     'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@,---     and the fragment shader declares the @EarlyFragmentTests@ execution---     mode and uses @OpDepthAttachmentReadEXT@, the @depthWriteEnable@---     parameter in the last call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'---     /must/ be 'Vulkan.Core10.FundamentalTypes.FALSE'------ -   #VUID-vkCmdDraw-pDynamicStates-08716# If the bound graphics pipeline---     state includes a fragment shader stage, was created with---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'---     set in---     'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@,---     and the fragment shader declares the @EarlyFragmentTests@ execution---     mode and uses @OpStencilAttachmentReadEXT@, the @writeMask@---     parameter in the last call to 'cmdSetStencilWriteMask' /must/ be @0@------ -   #VUID-vkCmdDraw-None-09116# If a shader object is bound to any---     graphics stage or the currently bound graphics pipeline was created---     with---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT',---     and the format of any color attachment is---     'Vulkan.Core10.Enums.Format.FORMAT_E5B9G9R9_UFLOAT_PACK32', the---     corresponding element of the @pColorWriteMasks@ parameter of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'---     /must/ either include all of---     'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_R_BIT',---     'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_G_BIT',---     and---     'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_B_BIT',---     or none of them------ -   #VUID-vkCmdDraw-maxFragmentDualSrcAttachments-09239# If---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-blending blending>---     is enabled for any attachment where either the source or destination---     blend factors for that attachment---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-dsb use the secondary color input>,---     the maximum value of @Location@ for any output attachment---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-staticuse statically used>---     in the @Fragment@ @Execution@ @Model@ executed by this command---     /must/ be less than---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxFragmentDualSrcAttachments maxFragmentDualSrcAttachments>------ -   #VUID-vkCmdDraw-commandBuffer-02712# If @commandBuffer@ is a---     protected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, any resource written to by the---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command /must/ not be an unprotected resource------ -   #VUID-vkCmdDraw-commandBuffer-02713# If @commandBuffer@ is a---     protected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, pipeline stages other than the framebuffer-space---     and compute stages in the 'Vulkan.Core10.Handles.Pipeline' object---     bound to the pipeline bind point used by this command /must/ not---     write to any resource------ -   #VUID-vkCmdDraw-commandBuffer-04617# If any of the shader stages of---     the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind---     point used by this command uses the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-RayQueryKHR RayQueryKHR>---     capability, then @commandBuffer@ /must/ not be a protected command---     buffer------ -   #VUID-vkCmdDraw-None-04007# All vertex input bindings accessed via---     vertex input variables declared in the vertex shader entry point’s---     interface /must/ have either valid or---     'Vulkan.Core10.APIConstants.NULL_HANDLE' buffers bound------ -   #VUID-vkCmdDraw-None-04008# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>---     feature is not enabled, all vertex input bindings accessed via---     vertex input variables declared in the vertex shader entry point’s---     interface /must/ not be 'Vulkan.Core10.APIConstants.NULL_HANDLE'------ -   #VUID-vkCmdDraw-None-02721# For a given vertex buffer binding, any---     attribute data fetched /must/ be entirely contained within the---     corresponding vertex buffer binding, as described in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input ???>------ -   #VUID-vkCmdDraw-None-07842# If the bound graphics pipeline state was---     created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY'---     dynamic state enabled then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-dynamicPrimitiveTopologyUnrestricted-07500# If the---     bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY'---     dynamic state enabled and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-dynamicPrimitiveTopologyUnrestricted dynamicPrimitiveTopologyUnrestricted>---     is 'Vulkan.Core10.FundamentalTypes.FALSE', then the---     @primitiveTopology@ parameter of---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'---     /must/ be of the same---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-primitive-topology-class topology class>---     as the pipeline---     'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@---     state------ -   #VUID-vkCmdDraw-None-04912# If the bound graphics pipeline was---     created with both the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'---     and---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'---     dynamic states enabled, then---     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'---     /must/ have been called in the current command buffer prior to this---     draw command------ -   #VUID-vkCmdDraw-pStrides-04913# If the bound graphics pipeline was---     created with the---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'---     dynamic state enabled, but not the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'---     dynamic state enabled, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'---     /must/ have been called in the current command buffer prior to this---     draw command, and the @pStrides@ parameter of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'---     /must/ not be @NULL@------ -   #VUID-vkCmdDraw-None-08881# If a shader object is bound to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'---     stage, then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-04914# If the bound graphics pipeline state was---     created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'---     dynamic state enabled, then---     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'---     /must/ have been called in the current command buffer prior to this---     draw command------ -   #VUID-vkCmdDraw-Input-07939# If the bound graphics pipeline state---     was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'---     dynamic state enabled, then all variables with the @Input@ storage---     class decorated with @Location@ in the @Vertex@ @Execution@ @Model@---     @OpEntryPoint@ /must/ contain a location in---     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@location@------ -   #VUID-vkCmdDraw-Input-08734# If the bound graphics pipeline state---     was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'---     dynamic state enabled, then the numeric type associated with all---     @Input@ variables of the corresponding @Location@ in the @Vertex@---     @Execution@ @Model@ @OpEntryPoint@ /must/ be the same as---     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@------ -   #VUID-vkCmdDraw-format-08936# If there is a shader object bound to a---     graphics stage or the currently bound graphics pipeline was created---     with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'---     dynamic state enabled, and---     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@---     has a 64-bit component, then the scalar width associated with all---     @Input@ variables of the corresponding @Location@ in the @Vertex@---     @Execution@ @Model@ @OpEntryPoint@ /must/ be 64-bit------ -   #VUID-vkCmdDraw-format-08937# If there is a shader object bound to a---     graphics stage or the currently bound graphics pipeline was created---     with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'---     dynamic state enabled, and the scalar width associated with a---     @Location@ decorated @Input@ variable in the @Vertex@ @Execution@---     @Model@ @OpEntryPoint@ is 64-bit, then the corresponding---     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@---     /must/ have a 64-bit component------ -   #VUID-vkCmdDraw-None-09203# If there is a shader object bound to a---     graphics stage or the currently bound graphics pipeline was created---     with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'---     dynamic state enabled, and---     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@---     has a 64-bit component, then all @Input@ variables at the---     corresponding @Location@ in the @Vertex@ @Execution@ @Model@---     @OpEntryPoint@ /must/ not use components that are not present in the---     format------ -   #VUID-vkCmdDraw-None-08882# If a shader object is bound to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'---     stage, then---     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-04875# If the bound graphics pipeline state was---     created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-08883# If a shader object is bound to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'---     stage, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-None-04879# If the bound graphics pipeline state was---     created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE'---     dynamic state enabled then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnable'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-rasterizerDiscardEnable-08884# If a shader object is---     bound to any graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE',---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnable'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDraw-stage-06481# The bound graphics pipeline /must/ not---     have been created with the---     'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@---     member of an element of---     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pStages@ set---     to---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'---     or---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'------ -   #VUID-vkCmdDraw-None-08885# There /must/ be no shader object bound---     to either of the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'---     or---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'---     stages------ == Valid Usage (Implicit)------ -   #VUID-vkCmdDraw-commandBuffer-parameter# @commandBuffer@ /must/ be a---     valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdDraw-commandBuffer-recording# @commandBuffer@ /must/ be---     in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>------ -   #VUID-vkCmdDraw-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics operations------ -   #VUID-vkCmdDraw-renderpass# This command /must/ only be called---     inside of a render pass instance------ -   #VUID-vkCmdDraw-videocoding# This command /must/ only be called---     outside of a video coding scope------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |--- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+--- | Primary                                                                                                                    | Inside                                                                                                                 | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.CommandBuffer'-cmdDraw :: forall io-         . (MonadIO io)-        => -- | @commandBuffer@ is the command buffer into which the command is-           -- recorded.-           CommandBuffer-        -> -- | @vertexCount@ is the number of vertices to draw.-           ("vertexCount" ::: Word32)-        -> -- | @instanceCount@ is the number of instances to draw.-           ("instanceCount" ::: Word32)-        -> -- | @firstVertex@ is the index of the first vertex to draw.-           ("firstVertex" ::: Word32)-        -> -- | @firstInstance@ is the instance ID of the first instance to draw.-           ("firstInstance" ::: Word32)-        -> io ()-cmdDraw commandBuffer-          vertexCount-          instanceCount-          firstVertex-          firstInstance = liftIO $ do-  let vkCmdDrawPtr = pVkCmdDraw (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  unless (vkCmdDrawPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDraw is null" Nothing Nothing-  let vkCmdDraw' = mkVkCmdDraw vkCmdDrawPtr-  traceAroundEvent "vkCmdDraw" (vkCmdDraw'-                                  (commandBufferHandle (commandBuffer))-                                  (vertexCount)-                                  (instanceCount)-                                  (firstVertex)-                                  (firstInstance))-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdDrawIndexed-  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Word32 -> Word32 -> Int32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Word32 -> Word32 -> Int32 -> Word32 -> IO ()---- | vkCmdDrawIndexed - Draw primitives with indexed vertices------ = Description------ When the command is executed, primitives are assembled using the current--- primitive topology and @indexCount@ vertices whose indices are retrieved--- from the index buffer. The index buffer is treated as an array of--- tightly packed unsigned integers of size defined by the--- 'Vulkan.Extensions.VK_KHR_maintenance5.cmdBindIndexBuffer2KHR'::@indexType@--- or the 'cmdBindIndexBuffer'::@indexType@ parameter with which the buffer--- was bound.------ The first vertex index is at an offset of @firstIndex@ × @indexSize@ +--- @offset@ within the bound index buffer, where @offset@ is the offset--- specified by 'cmdBindIndexBuffer' or--- 'Vulkan.Extensions.VK_KHR_maintenance5.cmdBindIndexBuffer2KHR', and--- @indexSize@ is the byte size of the type specified by @indexType@.--- Subsequent index values are retrieved from consecutive locations in the--- index buffer. Indices are first compared to the primitive restart value,--- then zero extended to 32 bits (if the @indexType@ is--- 'Vulkan.Core10.Enums.IndexType.INDEX_TYPE_UINT8_EXT' or--- 'Vulkan.Core10.Enums.IndexType.INDEX_TYPE_UINT16') and have--- @vertexOffset@ added to them, before being supplied as the @vertexIndex@--- value.------ The primitives are drawn @instanceCount@ times with @instanceIndex@--- starting with @firstInstance@ and increasing sequentially for each--- instance. The assembled primitives execute the bound graphics pipeline.------ == Valid Usage------ -   #VUID-vkCmdDrawIndexed-magFilter-04553# If a---     'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or---     @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and---     @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE' is---     used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of---     this command, then the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'------ -   #VUID-vkCmdDrawIndexed-mipmapMode-04770# If a---     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to---     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'---     and @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE'---     is used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of---     this command, then the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'------ -   #VUID-vkCmdDrawIndexed-None-06479# If a---     'Vulkan.Core10.Handles.ImageView' is sampled with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-depth-compare-operation depth comparison>,---     the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT'------ -   #VUID-vkCmdDrawIndexed-None-02691# If a---     'Vulkan.Core10.Handles.ImageView' is accessed using atomic---     operations as a result of this command, then the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT'------ -   #VUID-vkCmdDrawIndexed-None-07888# If a---     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER'---     descriptor is accessed using atomic operations as a result of this---     command, then the storage texel buffer’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-buffer-view-format-features format features>---     /must/ contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT'------ -   #VUID-vkCmdDrawIndexed-None-02692# If a---     'Vulkan.Core10.Handles.ImageView' is sampled with---     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this---     command, then the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'------ -   #VUID-vkCmdDrawIndexed-None-02693# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_filter_cubic VK_EXT_filter_cubic>---     extension is not enabled and any 'Vulkan.Core10.Handles.ImageView'---     is sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a---     result of this command, it /must/ not have a---     'Vulkan.Core10.Enums.ImageViewType.ImageViewType' of---     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D',---     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE', or---     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY'------ -   #VUID-vkCmdDrawIndexed-filterCubic-02694# Any---     'Vulkan.Core10.Handles.ImageView' being sampled with---     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this---     command /must/ have a---     'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that---     supports cubic filtering, as specified by---     'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubic@---     returned by---     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'------ -   #VUID-vkCmdDrawIndexed-filterCubicMinmax-02695# Any---     'Vulkan.Core10.Handles.ImageView' being sampled with---     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' with a reduction mode---     of either---     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'---     or---     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'---     as a result of this command /must/ have a---     'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that---     supports cubic filtering together with minmax filtering, as---     specified by---     'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubicMinmax@---     returned by---     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'------ -   #VUID-vkCmdDrawIndexed-cubicRangeClamp-09212# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-range-clamp cubicRangeClamp>---     feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView'---     being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as---     a result of this command------     [/must/ not have a 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo']---         @reductionMode@ equal to---         'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM'------ -   #VUID-vkCmdDrawIndexed-reductionMode-09213# Any---     'Vulkan.Core10.Handles.ImageView' being sampled with a---     'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'::@reductionMode@---     equal to---     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM'---     as a result of this command /must/ sample with---     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT'------ -   #VUID-vkCmdDrawIndexed-selectableCubicWeights-09214# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-weight-selection selectableCubicWeights>---     feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView'---     being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as---     a result of this command /must/ have---     'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.SamplerCubicWeightsCreateInfoQCOM'::@cubicWeights@---     equal to---     'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM'------ -   #VUID-vkCmdDrawIndexed-flags-02696# Any---     'Vulkan.Core10.Handles.Image' created with a---     'Vulkan.Core10.Image.ImageCreateInfo'::@flags@ containing---     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_CORNER_SAMPLED_BIT_NV'---     sampled as a result of this command /must/ only be sampled using a---     'Vulkan.Core10.Enums.SamplerAddressMode.SamplerAddressMode' of---     'Vulkan.Core10.Enums.SamplerAddressMode.SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE'------ -   #VUID-vkCmdDrawIndexed-OpTypeImage-07027# For any---     'Vulkan.Core10.Handles.ImageView' being written as a storage image---     where the image format field of the @OpTypeImage@ is @Unknown@, the---     view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'------ -   #VUID-vkCmdDrawIndexed-OpTypeImage-07028# For any---     'Vulkan.Core10.Handles.ImageView' being read as a storage image---     where the image format field of the @OpTypeImage@ is @Unknown@, the---     view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT'------ -   #VUID-vkCmdDrawIndexed-OpTypeImage-07029# For any---     'Vulkan.Core10.Handles.BufferView' being written as a storage texel---     buffer where the image format field of the @OpTypeImage@ is---     @Unknown@, the view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>---     /must/ contain---     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'------ -   #VUID-vkCmdDrawIndexed-OpTypeImage-07030# Any---     'Vulkan.Core10.Handles.BufferView' being read as a storage texel---     buffer where the image format field of the @OpTypeImage@ is---     @Unknown@ then the view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>---     /must/ contain---     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT'------ -   #VUID-vkCmdDrawIndexed-None-08600# For each set /n/ that is---     statically used by---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,---     a descriptor set /must/ have been bound to /n/ at the same pipeline---     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is---     compatible for set /n/, with the---     'Vulkan.Core10.Handles.PipelineLayout' or---     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>------ -   #VUID-vkCmdDrawIndexed-None-08601# For each push constant that is---     statically used by---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,---     a push constant value /must/ have been set for the same pipeline---     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is---     compatible for push constants, with the---     'Vulkan.Core10.Handles.PipelineLayout' or---     'Vulkan.Core10.Handles.DescriptorSetLayout' and---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>------ -   #VUID-vkCmdDrawIndexed-maintenance4-08602# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance4 maintenance4>---     feature is not enabled, then for each push constant that is---     statically used by---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,---     a push constant value /must/ have been set for the same pipeline---     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is---     compatible for push constants, with the---     'Vulkan.Core10.Handles.PipelineLayout' or---     'Vulkan.Core10.Handles.DescriptorSetLayout' and---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>------ -   #VUID-vkCmdDrawIndexed-None-08114# Descriptors in each bound---     descriptor set, specified via 'cmdBindDescriptorSets', /must/ be---     valid if they are statically used by the---     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point---     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'---     was not created with---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'------ -   #VUID-vkCmdDrawIndexed-None-08115# If the descriptors used by the---     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point---     were specified via 'cmdBindDescriptorSets', the bound---     'Vulkan.Core10.Handles.Pipeline' /must/ have been created without---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'------ -   #VUID-vkCmdDrawIndexed-None-08116# Descriptors in bound descriptor---     buffers, specified via---     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',---     /must/ be valid if they are dynamically used by the---     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point---     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'---     was created with---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'------ -   #VUID-vkCmdDrawIndexed-None-08604# Descriptors in bound descriptor---     buffers, specified via---     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',---     /must/ be valid if they are dynamically used by any---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding---     to the pipeline bind point used by this command------ -   #VUID-vkCmdDrawIndexed-None-08117# If the descriptors used by the---     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point---     were specified via---     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',---     the bound 'Vulkan.Core10.Handles.Pipeline' /must/ have been created---     with---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'------ -   #VUID-vkCmdDrawIndexed-None-08119# If a descriptor is dynamically---     used with a 'Vulkan.Core10.Handles.Pipeline' created with---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',---     the descriptor memory /must/ be resident------ -   #VUID-vkCmdDrawIndexed-None-08605# If a descriptor is dynamically---     used with a 'Vulkan.Extensions.Handles.ShaderEXT' created with a---     'Vulkan.Core10.Handles.DescriptorSetLayout' that was created with---     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',---     the descriptor memory /must/ be resident------ -   #VUID-vkCmdDrawIndexed-None-08606# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>---     feature is not enabled, a valid pipeline /must/ be bound to the---     pipeline bind point used by this command------ -   #VUID-vkCmdDrawIndexed-None-08607# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>---     is enabled, either a valid pipeline /must/ be bound to the pipeline---     bind point used by this command, or a valid combination of valid and---     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be---     bound to every supported shader stage corresponding to the pipeline---     bind point used by this command------ -   #VUID-vkCmdDrawIndexed-None-08608# If a pipeline is bound to the---     pipeline bind point used by this command, there /must/ not have been---     any calls to dynamic state setting commands for any state not---     specified as dynamic in the 'Vulkan.Core10.Handles.Pipeline' object---     bound to the pipeline bind point used by this command, since that---     pipeline was bound------ -   #VUID-vkCmdDrawIndexed-None-08609# If the---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command or any---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding---     to the pipeline bind point used by this command accesses a---     'Vulkan.Core10.Handles.Sampler' object that uses unnormalized---     coordinates, that sampler /must/ not be used to sample from any---     'Vulkan.Core10.Handles.Image' with a---     'Vulkan.Core10.Handles.ImageView' of the type---     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D',---     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE',---     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D_ARRAY',---     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D_ARRAY' or---     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY', in---     any shader stage------ -   #VUID-vkCmdDrawIndexed-None-08610# If the---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command or any---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding---     to the pipeline bind point used by this command accesses a---     'Vulkan.Core10.Handles.Sampler' object that uses unnormalized---     coordinates, that sampler /must/ not be used with any of the SPIR-V---     @OpImageSample*@ or @OpImageSparseSample*@ instructions with---     @ImplicitLod@, @Dref@ or @Proj@ in their name, in any shader stage------ -   #VUID-vkCmdDrawIndexed-None-08611# If the---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command or any---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding---     to the pipeline bind point used by this command accesses a---     'Vulkan.Core10.Handles.Sampler' object that uses unnormalized---     coordinates, that sampler /must/ not be used with any of the SPIR-V---     @OpImageSample*@ or @OpImageSparseSample*@ instructions that---     includes a LOD bias or any offset values, in any shader stage------ -   #VUID-vkCmdDrawIndexed-uniformBuffers-06935# If any stage of the---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command accesses a uniform buffer, and that stage---     was created without enabling either---     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'---     or---     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'---     for @uniformBuffers@, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>---     feature is not enabled, that stage /must/ not access values outside---     of the range of the buffer as specified in the descriptor set bound---     to the same pipeline bind point------ -   #VUID-vkCmdDrawIndexed-None-08612# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>---     feature is not enabled, and any---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding---     to the pipeline bind point used by this command accesses a uniform---     buffer, it /must/ not access values outside of the range of the---     buffer as specified in the descriptor set bound to the same pipeline---     bind point------ -   #VUID-vkCmdDrawIndexed-storageBuffers-06936# If any stage of the---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command accesses a storage buffer, and that stage---     was created without enabling either---     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'---     or---     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'---     for @storageBuffers@, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>---     feature is not enabled, that stage /must/ not access values outside---     of the range of the buffer as specified in the descriptor set bound---     to the same pipeline bind point------ -   #VUID-vkCmdDrawIndexed-None-08613# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>---     feature is not enabled, and any---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding---     to the pipeline bind point used by this command accesses a storage---     buffer, it /must/ not access values outside of the range of the---     buffer as specified in the descriptor set bound to the same pipeline---     bind point------ -   #VUID-vkCmdDrawIndexed-commandBuffer-02707# If @commandBuffer@ is an---     unprotected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, any resource accessed by---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding bound shaders>---     /must/ not be a protected resource------ -   #VUID-vkCmdDrawIndexed-None-06550# If---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>---     accesses a 'Vulkan.Core10.Handles.Sampler' or---     'Vulkan.Core10.Handles.ImageView' object that enables---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,---     that object /must/ only be used with @OpImageSample*@ or---     @OpImageSparseSample*@ instructions------ -   #VUID-vkCmdDrawIndexed-ConstOffset-06551# If---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>---     accesses a 'Vulkan.Core10.Handles.Sampler' or---     'Vulkan.Core10.Handles.ImageView' object that enables---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,---     that object /must/ not use the @ConstOffset@ and @Offset@ operands------ -   #VUID-vkCmdDrawIndexed-viewType-07752# If a---     'Vulkan.Core10.Handles.ImageView' is accessed as a result of this---     command, then the image view’s @viewType@ /must/ match the @Dim@---     operand of the @OpTypeImage@ as described in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-operation-validation ???>------ -   #VUID-vkCmdDrawIndexed-format-07753# If a---     'Vulkan.Core10.Handles.ImageView' is accessed as a result of this---     command, then the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-numericformat numeric type>---     of the image view’s @format@ and the @Sampled@ @Type@ operand of the---     @OpTypeImage@ /must/ match------ -   #VUID-vkCmdDrawIndexed-OpImageWrite-08795# If a---     'Vulkan.Core10.Handles.ImageView' created with a format other than---     'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using---     @OpImageWrite@ as a result of this command, then the @Type@ of the---     @Texel@ operand of that instruction /must/ have at least as many---     components as the image view’s format------ -   #VUID-vkCmdDrawIndexed-OpImageWrite-08796# If a---     'Vulkan.Core10.Handles.ImageView' created with the format---     'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using---     @OpImageWrite@ as a result of this command, then the @Type@ of the---     @Texel@ operand of that instruction /must/ have four components------ -   #VUID-vkCmdDrawIndexed-OpImageWrite-04469# If a---     'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@---     as a result of this command, then the @Type@ of the @Texel@ operand---     of that instruction /must/ have at least as many components as the---     buffer view’s format------ -   #VUID-vkCmdDrawIndexed-SampledType-04470# If a---     'Vulkan.Core10.Handles.ImageView' with a---     'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component---     width is accessed as a result of this command, the @SampledType@ of---     the @OpTypeImage@ operand of that instruction /must/ have a @Width@---     of 64------ -   #VUID-vkCmdDrawIndexed-SampledType-04471# If a---     'Vulkan.Core10.Handles.ImageView' with a---     'Vulkan.Core10.Enums.Format.Format' that has a component width less---     than 64-bit is accessed as a result of this command, the---     @SampledType@ of the @OpTypeImage@ operand of that instruction---     /must/ have a @Width@ of 32------ -   #VUID-vkCmdDrawIndexed-SampledType-04472# If a---     'Vulkan.Core10.Handles.BufferView' with a---     'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component---     width is accessed as a result of this command, the @SampledType@ of---     the @OpTypeImage@ operand of that instruction /must/ have a @Width@---     of 64------ -   #VUID-vkCmdDrawIndexed-SampledType-04473# If a---     'Vulkan.Core10.Handles.BufferView' with a---     'Vulkan.Core10.Enums.Format.Format' that has a component width less---     than 64-bit is accessed as a result of this command, the---     @SampledType@ of the @OpTypeImage@ operand of that instruction---     /must/ have a @Width@ of 32------ -   #VUID-vkCmdDrawIndexed-sparseImageInt64Atomics-04474# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>---     feature is not enabled, 'Vulkan.Core10.Handles.Image' objects---     created with the---     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_RESIDENCY_BIT'---     flag /must/ not be accessed by atomic instructions through an---     @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this---     command------ -   #VUID-vkCmdDrawIndexed-sparseImageInt64Atomics-04475# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>---     feature is not enabled, 'Vulkan.Core10.Handles.Buffer' objects---     created with the---     'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_SPARSE_RESIDENCY_BIT'---     flag /must/ not be accessed by atomic instructions through an---     @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this---     command------ -   #VUID-vkCmdDrawIndexed-OpImageWeightedSampleQCOM-06971# If---     @OpImageWeightedSampleQCOM@ is used to sample a---     'Vulkan.Core10.Handles.ImageView' as a result of this command, then---     the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM'------ -   #VUID-vkCmdDrawIndexed-OpImageWeightedSampleQCOM-06972# If---     @OpImageWeightedSampleQCOM@ uses a 'Vulkan.Core10.Handles.ImageView'---     as a sample weight image as a result of this command, then the image---     view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM'------ -   #VUID-vkCmdDrawIndexed-OpImageBoxFilterQCOM-06973# If---     @OpImageBoxFilterQCOM@ is used to sample a---     'Vulkan.Core10.Handles.ImageView' as a result of this command, then---     the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM'------ -   #VUID-vkCmdDrawIndexed-OpImageBlockMatchSSDQCOM-06974# If---     @OpImageBlockMatchSSDQCOM@ is used to read from an---     'Vulkan.Core10.Handles.ImageView' as a result of this command, then---     the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'------ -   #VUID-vkCmdDrawIndexed-OpImageBlockMatchSADQCOM-06975# If---     @OpImageBlockMatchSADQCOM@ is used to read from an---     'Vulkan.Core10.Handles.ImageView' as a result of this command, then---     the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'------ -   #VUID-vkCmdDrawIndexed-OpImageBlockMatchSADQCOM-06976# If---     @OpImageBlockMatchSADQCOM@ or OpImageBlockMatchSSDQCOM is used to---     read from a reference image as result of this command, then the---     specified reference coordinates /must/ not fail---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation integer texel coordinate validation>------ -   #VUID-vkCmdDrawIndexed-OpImageWeightedSampleQCOM-06977# If---     @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,---     @OpImageBlockMatchWindowSSDQCOM@, @OpImageBlockMatchWindowSADQCOM@,---     @OpImageBlockMatchGatherSSDQCOM@, @OpImageBlockMatchGatherSADQCOM@,---     @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a---     'Vulkan.Core10.Handles.Sampler' as a result of this command, then---     the sampler /must/ have been created with---     'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'------ -   #VUID-vkCmdDrawIndexed-OpImageWeightedSampleQCOM-06978# If any---     command other than @OpImageWeightedSampleQCOM@,---     @OpImageBoxFilterQCOM@, @OpImageBlockMatchWindowSSDQCOM@,---     @OpImageBlockMatchWindowSADQCOM@, @OpImageBlockMatchGatherSSDQCOM@,---     @OpImageBlockMatchGatherSADQCOM@, @OpImageBlockMatchSSDQCOM@, or---     @OpImageBlockMatchSADQCOM@ uses a 'Vulkan.Core10.Handles.Sampler' as---     a result of this command, then the sampler /must/ not have been---     created with---     'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'------ -   #VUID-vkCmdDrawIndexed-OpImageBlockMatchWindow-09215# If a---     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@---     instruction is used to read from an---     'Vulkan.Core10.Handles.ImageView' as a result of this command, then---     the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'------ -   #VUID-vkCmdDrawIndexed-OpImageBlockMatchWindow-09216# If a---     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@---     instruction is used to read from an---     'Vulkan.Core10.Handles.ImageView' as a result of this command, then---     the image view’s format /must/ be a single-component format.------ -   #VUID-vkCmdDrawIndexed-OpImageBlockMatchWindow-09217# If a---     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@---     read from a reference image as result of this command, then the---     specified reference coordinates /must/ not fail---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation integer texel coordinate validation>------ -   #VUID-vkCmdDrawIndexed-None-07288# Any shader invocation executed by---     this command /must/---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-termination terminate>------ -   #VUID-vkCmdDrawIndexed-renderPass-02684# The current render pass---     /must/ be---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-compatibility compatible>---     with the @renderPass@ member of the---     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo' structure---     specified when creating the 'Vulkan.Core10.Handles.Pipeline' bound---     to---     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'------ -   #VUID-vkCmdDrawIndexed-subpass-02685# The subpass index of the---     current render pass /must/ be equal to the @subpass@ member of the---     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo' structure---     specified when creating the 'Vulkan.Core10.Handles.Pipeline' bound---     to---     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'------ -   #VUID-vkCmdDrawIndexed-None-07748# If any shader statically accesses---     an input attachment, a valid descriptor /must/ be bound to the---     pipeline via a descriptor set------ -   #VUID-vkCmdDrawIndexed-OpTypeImage-07468# If any shader executed by---     this pipeline accesses an @OpTypeImage@ variable with a @Dim@---     operand of @SubpassData@, it /must/ be decorated with an---     @InputAttachmentIndex@ that corresponds to a valid input attachment---     in the current subpass------ -   #VUID-vkCmdDrawIndexed-None-07469# Input attachment views accessed---     in a subpass /must/ be created with the same---     'Vulkan.Core10.Enums.Format.Format' as the corresponding subpass---     definition, and be created with a 'Vulkan.Core10.Handles.ImageView'---     that is compatible with the attachment referenced by the subpass\'---     @pInputAttachments@[@InputAttachmentIndex@] in the currently bound---     'Vulkan.Core10.Handles.Framebuffer' as specified by---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#compatibility-inputattachment Fragment Input Attachment Compatibility>------ -   #VUID-vkCmdDrawIndexed-None-06537# Memory backing image subresources---     used as attachments in the current render pass /must/ not be written---     in any way other than as an attachment by this command------ -   #VUID-vkCmdDrawIndexed-None-09000# If a color attachment is written---     by any prior command in this subpass or by the load, store, or---     resolve operations for this subpass, it is not in the---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'---     image layout, and either:------     -   the---         'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'---         is set on the currently bound pipeline or------     -   the last call to---         'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'---         included---         'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'---         and------         -   there is no currently bound graphics pipeline or------         -   the currently bound graphics pipeline was created with---             'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'---             it /must/ not be accessed in any way other than as an---             attachment by this command------ -   #VUID-vkCmdDrawIndexed-None-09001# If a depth attachment is written---     by any prior command in this subpass or by the load, store, or---     resolve operations for this subpass, it is not in the---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'---     image layout, and either:------     -   the---         'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'---         is set on the currently bound pipeline or------     -   the last call to---         'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'---         included---         'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT'---         and------         -   there is no currently bound graphics pipeline or------         -   the currently bound graphics pipeline was created with---             'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'---             it /must/ not be accessed in any way other than as an---             attachment by this command------ -   #VUID-vkCmdDrawIndexed-None-09002# If a stencil attachment is---     written by any prior command in this subpass or by the load, store,---     or resolve operations for this subpass, it is not in the---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'---     image layout, and either:------     -   the---         'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'---         is set on the currently bound pipeline or------     -   the last call to---         'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'---         included---         'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'---         and------         -   there is no currently bound graphics pipeline or------         -   the currently bound graphics pipeline was created with---             'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'---             it /must/ not be accessed in any way other than as an---             attachment by this command------ -   #VUID-vkCmdDrawIndexed-None-09003# If an attachment is written by---     any prior command in this subpass or by the load, store, or resolve---     operations for this subpass, it /must/ not be accessed in any way---     other than as an attachment, storage image, or sampled image by this---     command------ -   #VUID-vkCmdDrawIndexed-None-06539# If any previously recorded---     command in the current subpass accessed an image subresource used as---     an attachment in this subpass in any way other than as an---     attachment, this command /must/ not write to that image subresource---     as an attachment------ -   #VUID-vkCmdDrawIndexed-None-06886# If the current render pass---     instance uses a depth\/stencil attachment with a read-only layout---     for the depth aspect,---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-depth-write depth writes>---     /must/ be disabled------ -   #VUID-vkCmdDrawIndexed-None-06887# If the current render pass---     instance uses a depth\/stencil attachment with a read-only layout---     for the stencil aspect, both front and back @writeMask@ are not---     zero, and stencil test is enabled,---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-stencil all stencil ops>---     /must/ be 'Vulkan.Core10.Enums.StencilOp.STENCIL_OP_KEEP'------ -   #VUID-vkCmdDrawIndexed-None-07831# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT' dynamic---     state enabled then 'cmdSetViewport' /must/ have been called in the---     current command buffer prior to this drawing command------ -   #VUID-vkCmdDrawIndexed-None-07832# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR' dynamic---     state enabled then 'cmdSetScissor' /must/ have been called in the---     current command buffer prior to this drawing command------ -   #VUID-vkCmdDrawIndexed-None-07833# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_WIDTH' dynamic---     state enabled then 'cmdSetLineWidth' /must/ have been called in the---     current command buffer prior to this drawing command------ -   #VUID-vkCmdDrawIndexed-None-08617# If a shader object is bound to---     any graphics stage, and the most recent call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'---     in the current command buffer set @polygonMode@ to---     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE',---     'cmdSetLineWidth' /must/ have been called in the current command---     buffer prior to this drawing command------ -   #VUID-vkCmdDrawIndexed-None-08618# If a shader object is bound to---     the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'---     stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'---     in the current command buffer set @primitiveTopology@ to any line---     topology, 'cmdSetLineWidth' /must/ have been called in the current---     command buffer prior to this drawing command------ -   #VUID-vkCmdDrawIndexed-None-08619# If a shader object that outputs---     line primitives is bound to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'---     or---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'---     stage, 'cmdSetLineWidth' /must/ have been called in the current---     command buffer prior to this drawing command------ -   #VUID-vkCmdDrawIndexed-None-07834# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS' dynamic---     state enabled then 'cmdSetDepthBias' or---     'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-08620# If a shader object is bound to---     any graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable'---     in the current command buffer set @depthBiasEnable@ to---     'Vulkan.Core10.FundamentalTypes.TRUE', 'cmdSetDepthBias' or---     'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-07835# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_BLEND_CONSTANTS'---     dynamic state enabled then 'cmdSetBlendConstants' /must/ have been---     called in the current command buffer prior to this drawing command------ -   #VUID-vkCmdDrawIndexed-None-08621# If a shader object is bound to---     the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'---     stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'---     in the current command buffer set any element of---     @pColorBlendEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE', and---     the most recent call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'---     in the current command buffer set the same element of---     @pColorBlendEquations@ to a---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.ColorBlendEquationEXT'---     structure with any 'Vulkan.Core10.Enums.BlendFactor.BlendFactor'---     member with a value of---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_COLOR',---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR',---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_ALPHA', or---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA',---     'cmdSetBlendConstants' /must/ have been called in the current---     command buffer prior to this drawing command------ -   #VUID-vkCmdDrawIndexed-None-07836# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS'---     dynamic state enabled, and if the current @depthBoundsTestEnable@---     state is 'Vulkan.Core10.FundamentalTypes.TRUE', then---     'cmdSetDepthBounds' /must/ have been called in the current command---     buffer prior to this drawing command------ -   #VUID-vkCmdDrawIndexed-None-08622# If a shader object is bound to---     any graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'---     in the current command buffer set @depthBoundsTestEnable@ to---     'Vulkan.Core10.FundamentalTypes.TRUE', then 'cmdSetDepthBounds'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-07837# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_COMPARE_MASK'---     dynamic state enabled, and if the current @stencilTestEnable@ state---     is 'Vulkan.Core10.FundamentalTypes.TRUE', then---     'cmdSetStencilCompareMask' /must/ have been called in the current---     command buffer prior to this drawing command------ -   #VUID-vkCmdDrawIndexed-None-08623# If a shader object is bound to---     any graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'---     in the current command buffer set @stencilTestEnable@ to---     'Vulkan.Core10.FundamentalTypes.TRUE', 'cmdSetStencilCompareMask'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-07838# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'---     dynamic state enabled, and if the current @stencilTestEnable@ state---     is 'Vulkan.Core10.FundamentalTypes.TRUE', then---     'cmdSetStencilWriteMask' /must/ have been called in the current---     command buffer prior to this drawing command------ -   #VUID-vkCmdDrawIndexed-None-08624# If a shader object is bound to---     any graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'---     in the current command buffer set @stencilTestEnable@ to---     'Vulkan.Core10.FundamentalTypes.TRUE', 'cmdSetStencilWriteMask'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-07839# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_REFERENCE'---     dynamic state enabled, and if the current @stencilTestEnable@ state---     is 'Vulkan.Core10.FundamentalTypes.TRUE', then---     'cmdSetStencilReference' /must/ have been called in the current---     command buffer prior to this drawing command------ -   #VUID-vkCmdDrawIndexed-None-08625# If a shader object is bound to---     any graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'---     in the current command buffer set @stencilTestEnable@ to---     'Vulkan.Core10.FundamentalTypes.TRUE', 'cmdSetStencilReference'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-maxMultiviewInstanceIndex-02688# If the draw---     is recorded in a render pass instance with multiview enabled, the---     maximum instance index /must/ be less than or equal to---     'Vulkan.Core11.Promoted_From_VK_KHR_multiview.PhysicalDeviceMultiviewProperties'::@maxMultiviewInstanceIndex@------ -   #VUID-vkCmdDrawIndexed-sampleLocationsEnable-02689# If the bound---     graphics pipeline was created with---     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@---     set to 'Vulkan.Core10.FundamentalTypes.TRUE' and the current subpass---     has a depth\/stencil attachment, then that attachment /must/ have---     been created with the---     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT'---     bit set------ -   #VUID-vkCmdDrawIndexed-None-06666# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-08626# If a shader object is bound to---     any graphics stage, and the most recent call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'---     in the current command buffer set @sampleLocationsEnable@ to---     'Vulkan.Core10.FundamentalTypes.TRUE', and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-sampleLocationsPerPixel-07934# If the bound---     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'---     state enabled, then the @sampleLocationsPerPixel@ member of---     @pSampleLocationsInfo@ in the last call to---     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'---     /must/ equal the @rasterizationSamples@ member of the---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'---     structure the bound graphics pipeline has been created with------ -   #VUID-vkCmdDrawIndexed-None-07840# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic---     state enabled then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-08627# If a shader object is bound to---     any graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-07841# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRONT_FACE' dynamic---     state enabled then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-08628# If a shader object is bound to---     any graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-07843# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE'---     dynamic state enabled then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-08629# If a shader object is bound to---     any graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-07844# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'---     dynamic state enabled then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-08630# If a shader object is bound to---     any graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-07845# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP'---     dynamic state enabled then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-08631# If a shader object is bound to---     any graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'---     in the current command buffer set @depthTestEnable@ to---     'Vulkan.Core10.FundamentalTypes.TRUE', then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-07846# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE'---     dynamic state enabled then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-08632# If a shader object is bound to---     any graphics stage, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthBounds depthBounds>---     feature is enabled, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then the---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-07847# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE'---     dynamic state enabled then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-08633# If a shader object is bound to---     any graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-07848# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP' dynamic---     state enabled then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-08634# If a shader object is bound to---     any graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'---     in the current command buffer set @stencilTestEnable@ to---     'Vulkan.Core10.FundamentalTypes.TRUE', then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-viewportCount-03417# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'---     dynamic state enabled, but not the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'---     dynamic state enabled, then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'---     /must/ have been called in the current command buffer prior to this---     drawing command, and the @viewportCount@ parameter of---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'---     /must/ match the---     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@scissorCount@---     of the pipeline------ -   #VUID-vkCmdDrawIndexed-scissorCount-03418# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'---     dynamic state enabled, but not the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'---     dynamic state enabled, then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'---     /must/ have been called in the current command buffer prior to this---     drawing command, and the @scissorCount@ parameter of---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'---     /must/ match the---     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@viewportCount@---     of the pipeline------ -   #VUID-vkCmdDrawIndexed-viewportCount-03419# If the bound graphics---     pipeline state was created with both the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'---     and---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'---     dynamic states enabled then both---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'---     and---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'---     /must/ have been called in the current command buffer prior to this---     drawing command, and the @viewportCount@ parameter of---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'---     /must/ match the @scissorCount@ parameter of---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'------ -   #VUID-vkCmdDrawIndexed-None-08635# If a shader object is bound to---     any graphics stage, then both---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'---     and---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'---     /must/ have been called in the current command buffer prior to this---     drawing command, and the @viewportCount@ parameter of---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'---     /must/ match the @scissorCount@ parameter of---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'------ -   #VUID-vkCmdDrawIndexed-viewportCount-04137# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'---     dynamic state enabled, but not the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_NV'---     dynamic state enabled, then the bound graphics pipeline /must/ have---     been created with---     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.PipelineViewportWScalingStateCreateInfoNV'::@viewportCount@---     greater or equal to the @viewportCount@ parameter in the last call---     to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'------ -   #VUID-vkCmdDrawIndexed-viewportCount-04138# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'---     and---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_NV'---     dynamic states enabled then the @viewportCount@ parameter in the---     last call to---     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV'---     /must/ be greater than or equal to the @viewportCount@ parameter in---     the last call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'------ -   #VUID-vkCmdDrawIndexed-None-09232# If a shader object is bound to---     any graphics stage, and the @VK_NV_clip_space_w_scaling@ extension---     is enabled on the device, then---     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV'---     must have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-08636# If a shader object is bound to---     any graphics stage, and the @VK_NV_clip_space_w_scaling@ extension---     is enabled on the device, then the @viewportCount@ parameter in the---     last call to---     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV'---     /must/ be greater than or equal to the @viewportCount@ parameter in---     the last call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'------ -   #VUID-vkCmdDrawIndexed-viewportCount-04139# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'---     dynamic state enabled, but not the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV'---     dynamic state enabled, then the bound graphics pipeline /must/ have---     been created with---     'Vulkan.Extensions.VK_NV_shading_rate_image.PipelineViewportShadingRateImageStateCreateInfoNV'::@viewportCount@---     greater or equal to the @viewportCount@ parameter in the last call---     to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'------ -   #VUID-vkCmdDrawIndexed-viewportCount-04140# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'---     and---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV'---     dynamic states enabled then the @viewportCount@ parameter in the---     last call to---     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV'---     /must/ be greater than or equal to the @viewportCount@ parameter in---     the last call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'------ -   #VUID-vkCmdDrawIndexed-shadingRateImage-09233# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>---     feature is enabled, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set rasterizerDiscardEnable to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetCoarseSampleOrderNV'---     must have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-shadingRateImage-09234# If a shader object is---     bound to any graphics stage, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>---     feature is enabled on the device, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set rasterizerDiscardEnable to---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV'---     in the current command buffer set shadingRateImageEnable to---     'Vulkan.Core10.FundamentalTypes.TRUE', then---     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV'---     must have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-08637# If a shader object is bound to---     any graphics stage, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>---     feature is enabled on the device, then the @viewportCount@ parameter---     in the last call to---     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV'---     /must/ be greater than or equal to the @viewportCount@ parameter in---     the last call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'------ -   #VUID-vkCmdDrawIndexed-VkPipelineVieportCreateInfo-04141# If the---     bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'---     dynamic state enabled and a---     'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'---     structure chained from---     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo', then the---     bound graphics pipeline /must/ have been created with---     'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'::@viewportCount@---     greater or equal to the @viewportCount@ parameter in the last call---     to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'------ -   #VUID-vkCmdDrawIndexed-VkPipelineVieportCreateInfo-04142# If the---     bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'---     dynamic state enabled and a---     'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'---     structure chained from---     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo', then the---     bound graphics pipeline /must/ have been created with---     'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'::@exclusiveScissorCount@---     greater or equal to the @viewportCount@ parameter in the last call---     to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'------ -   #VUID-vkCmdDrawIndexed-None-07878# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV'---     dynamic state enabled then---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-07879# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV'---     dynamic state enabled then---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-exclusiveScissor-09235# If a shader object is---     bound to any graphics stage, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>---     feature is enabled, then---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'---     must have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-08638# If a shader object is bound to---     any graphics stage, and the most recent call to---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'---     in the current command buffer set any element of---     @pExclusiveScissorEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE',---     then---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-04876# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE'---     dynamic state enabled then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-08639# If a shader object is bound to---     any graphics stage, then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-04877# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE'---     dynamic state enabled then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-08640# If a shader object is bound to---     any graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-logicOp-04878# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetLogicOpEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command and the @logicOp@ /must/ be a valid---     'Vulkan.Core10.Enums.LogicOp.LogicOp' value------ -   #VUID-vkCmdDrawIndexed-None-08641# If a shader object is bound to---     the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'---     stage, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>---     feature is enabled on the device, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetLogicOpEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command and the @logicOp@ /must/ be a valid---     'Vulkan.Core10.Enums.LogicOp.LogicOp' value------ -   #VUID-vkCmdDrawIndexed-primitiveFragmentShadingRateWithMultipleViewports-04552#---     If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>---     limit is not supported, the bound graphics pipeline was created with---     the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'---     dynamic state enabled, and any of the shader stages of the bound---     graphics pipeline write to the @PrimitiveShadingRateKHR@ built-in,---     then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'---     /must/ have been called in the current command buffer prior to this---     drawing command, and the @viewportCount@ parameter of---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'---     /must/ be @1@------ -   #VUID-vkCmdDrawIndexed-primitiveFragmentShadingRateWithMultipleViewports-08642#---     If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>---     limit is not supported, and any shader object bound to a graphics---     stage writes to the @PrimitiveShadingRateKHR@ built-in, then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'---     /must/ have been called in the current command buffer prior to this---     drawing command, and the @viewportCount@ parameter of---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'---     /must/ be @1@------ -   #VUID-vkCmdDrawIndexed-blendEnable-04727# If rasterization is not---     disabled in the bound graphics pipeline, then for each color---     attachment in the subpass, if the corresponding image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     do not contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT',---     then the @blendEnable@ member of the corresponding element of the---     @pAttachments@ member of @pColorBlendState@ /must/ be---     'Vulkan.Core10.FundamentalTypes.FALSE'------ -   #VUID-vkCmdDrawIndexed-None-08643# If a shader object is bound to---     any graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then for each color---     attachment in the render pass, if the corresponding image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     do not contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT',---     then the corresponding member of @pColorBlendEnables@ in the most---     recent call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'---     in the current command buffer that affected that attachment index---     /must/ have been 'Vulkan.Core10.FundamentalTypes.FALSE'------ -   #VUID-vkCmdDrawIndexed-multisampledRenderToSingleSampled-07284# If---     rasterization is not disabled in the bound graphics pipeline, and---     none of the @VK_AMD_mixed_attachment_samples@ extension, the---     @VK_NV_framebuffer_mixed_samples@ extension, or the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>---     feature is enabled, then @rasterizationSamples@ for the currently---     bound graphics pipeline /must/ be the same as the current subpass---     color and\/or depth\/stencil attachments------ -   #VUID-vkCmdDrawIndexed-None-08644# If a shader object is bound to---     any graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', and none of the---     @VK_AMD_mixed_attachment_samples@ extension, the---     @VK_NV_framebuffer_mixed_samples@ extension, or the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>---     feature is enabled, then the most recent call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'---     in the current command buffer /must/ have set @rasterizationSamples@---     to be the same as the number of samples for the current render pass---     color and\/or depth\/stencil attachments------ -   #VUID-vkCmdDrawIndexed-None-08876# If a shader object is bound to---     any graphics stage, the current render pass instance /must/ have---     been begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'------ -   #VUID-vkCmdDrawIndexed-imageView-06172# If the current render pass---     instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     the @imageView@ member of @pDepthAttachment@ is not---     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of---     @pDepthAttachment@ is---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL',---     this command /must/ not write any values to the depth attachment------ -   #VUID-vkCmdDrawIndexed-imageView-06173# If the current render pass---     instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     the @imageView@ member of @pStencilAttachment@ is not---     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of---     @pStencilAttachment@ is---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL',---     this command /must/ not write any values to the stencil attachment------ -   #VUID-vkCmdDrawIndexed-imageView-06174# If the current render pass---     instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     the @imageView@ member of @pDepthAttachment@ is not---     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of---     @pDepthAttachment@ is---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL',---     this command /must/ not write any values to the depth attachment------ -   #VUID-vkCmdDrawIndexed-imageView-06175# If the current render pass---     instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     the @imageView@ member of @pStencilAttachment@ is not---     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of---     @pStencilAttachment@ is---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL',---     this command /must/ not write any values to the stencil attachment------ -   #VUID-vkCmdDrawIndexed-imageView-06176# If the current render pass---     instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     the @imageView@ member of @pDepthAttachment@ is not---     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of---     @pDepthAttachment@ is---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL',---     this command /must/ not write any values to the depth attachment------ -   #VUID-vkCmdDrawIndexed-imageView-06177# If the current render pass---     instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     the @imageView@ member of @pStencilAttachment@ is not---     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of---     @pStencilAttachment@ is---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL',---     this command /must/ not write any values to the stencil attachment------ -   #VUID-vkCmdDrawIndexed-viewMask-06178# If the current render pass---     instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     the currently bound graphics pipeline /must/ have been created with---     a---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@viewMask@---     equal to---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@viewMask@------ -   #VUID-vkCmdDrawIndexed-colorAttachmentCount-06179# If the current---     render pass instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     the currently bound graphics pipeline /must/ have been created with---     a---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@colorAttachmentCount@---     equal to---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@------ -   #VUID-vkCmdDrawIndexed-dynamicRenderingUnusedAttachments-08910# If---     the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>---     feature is not enabled, and the current render pass instance was---     begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'---     and---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@---     greater than @0@, then each element of the---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@---     array with a @imageView@ not equal to---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created---     with a 'Vulkan.Core10.Enums.Format.Format' equal to the---     corresponding element of---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@---     used to create the currently bound graphics pipeline------ -   #VUID-vkCmdDrawIndexed-dynamicRenderingUnusedAttachments-08911# If---     the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>---     feature is enabled, and the current render pass instance was begun---     with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'---     and---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@---     greater than @0@, then each element of the---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@---     array with a @imageView@ not equal to---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created---     with a 'Vulkan.Core10.Enums.Format.Format' equal to the---     corresponding element of---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@---     used to create the currently bound graphics pipeline, or the---     corresponding element of---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,---     if it exists, /must/ be---     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'------ -   #VUID-vkCmdDrawIndexed-dynamicRenderingUnusedAttachments-08912# If---     the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>---     feature is not enabled, and the current render pass instance was---     begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'---     and---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@---     greater than @0@, then each element of the---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@---     array with a @imageView@ equal to---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have the---     corresponding element of---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@---     used to create the currently bound pipeline equal to---     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'------ -   #VUID-vkCmdDrawIndexed-colorAttachmentCount-09362# If the current---     render pass instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     with a---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@---     equal to @1@, there is no shader object bound to any graphics stage,---     and a color attachment with a resolve mode of---     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',---     each element of the---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@---     array with a @resolveImageView@ not equal to---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created---     with an image created with a---     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@---     value equal to the---     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@---     value used to create the currently bound graphics pipeline------ -   #VUID-vkCmdDrawIndexed-None-09363# If there is no shader object---     bound to any graphics stage, the current render pass instance was---     begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'---     and a---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@---     equal to @1@, and a color attachment with a resolve mode of---     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',---     each element of the---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@---     array with a @imageView@ not equal to---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created---     with an image created with a---     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@---     value equal to the---     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@---     value used to create the currently bound graphics pipeline------ -   #VUID-vkCmdDrawIndexed-None-09364# If the current render pass---     instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     there is no shader object bound to any graphics stage, and the---     currently bound graphics pipeline was created with a non-zero---     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@---     value and with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'---     dynamic state enabled, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'---     /must/ have set the blend enable to---     'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command------ -   #VUID-vkCmdDrawIndexed-None-09365# If the current render pass---     instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     there is no shader object bound to any graphics stage, and the---     currently bound graphics pipeline was created with a non-zero---     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@---     value and with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'---     dynamic state enabled, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'---     /must/ have set @rasterizationSamples@ to---     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior---     to this drawing command------ -   #VUID-vkCmdDrawIndexed-None-09366# If there is a shader object bound---     to any graphics stage, and the current render pass includes a color---     attachment that uses the---     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'---     resolve mode, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'---     /must/ have set blend enable to---     'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command------ -   #VUID-vkCmdDrawIndexed-rasterizationSamples-09367# If there is a---     shader object bound to any graphics stage, and the current render---     pass includes a color attachment that uses the---     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'---     resolve mode, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'---     /must/ have set @rasterizationSamples@ to---     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior---     to this drawing command------ -   #VUID-vkCmdDrawIndexed-None-09368# If the current render pass---     instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     there is no shader object bound to any graphics stage, and the---     currently bound graphics pipeline was created with a non-zero---     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@---     value and with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'---     dynamic state enabled, then---     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'---     /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing---     command------ -   #VUID-vkCmdDrawIndexed-None-09369# If the current render pass---     instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     there is no shader object bound to any graphics stage, and the---     currently bound graphics pipeline was created with a non-zero---     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@---     value and with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'---     dynamic state enabled, then---     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'---     /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing---     command------ -   #VUID-vkCmdDrawIndexed-pFragmentSize-09370# If there is a shader---     object bound to any graphics stage, and the current render pass---     includes a color attachment that uses the---     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'---     resolve mode, then---     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'---     /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing---     command------ -   #VUID-vkCmdDrawIndexed-pFragmentSize-09371# If there is a shader---     object bound to any graphics stage, and the current render pass---     includes a color attachment that uses the---     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'---     resolve mode, then---     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'---     /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing---     command------ -   #VUID-vkCmdDrawIndexed-None-07749# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-08646# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>---     feature is enabled on the device, and a shader object is bound to---     the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'---     stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-attachmentCount-07750# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'---     dynamic state enabled then the @attachmentCount@ parameter of---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'---     /must/ be greater than or equal to the---     'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo'::@attachmentCount@---     of the currently bound graphics pipeline------ -   #VUID-vkCmdDrawIndexed-None-08647# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>---     feature is enabled on the device, and a shader object is bound to---     the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'---     stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then the @attachmentCount@---     parameter of most recent call to---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'---     in the current command buffer /must/ be greater than or equal to the---     number of color attachments in the current render pass instance------ -   #VUID-vkCmdDrawIndexed-None-07751# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command for each discard rectangle in---     'Vulkan.Extensions.VK_EXT_discard_rectangles.PipelineDiscardRectangleStateCreateInfoEXT'::@discardRectangleCount@------ -   #VUID-vkCmdDrawIndexed-None-07880# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-rasterizerDiscardEnable-09236# If the---     @VK_EXT_discard_rectangles@ extension is enabled, and a shader---     object is bound to any graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-08648# If the---     @VK_EXT_discard_rectangles@ extension is enabled, and a shader---     object is bound to any graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-07881# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-08649# If the---     @VK_EXT_discard_rectangles@ extension is enabled, and a shader---     object is bound to any graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'---     in the current command buffer set @discardRectangleEnable@ to---     'Vulkan.Core10.FundamentalTypes.TRUE', then---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-dynamicRenderingUnusedAttachments-08913# If---     the current render pass instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>---     feature is not enabled, and---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@---     was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@---     used to create the currently bound graphics pipeline /must/ be equal---     to 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'------ -   #VUID-vkCmdDrawIndexed-dynamicRenderingUnusedAttachments-08914# If---     current render pass instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>---     feature is not enabled, and---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@---     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@---     used to create the currently bound graphics pipeline /must/ be equal---     to the 'Vulkan.Core10.Enums.Format.Format' used to create---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@------ -   #VUID-vkCmdDrawIndexed-dynamicRenderingUnusedAttachments-08915# If---     the current render pass instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>---     feature is enabled,---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@---     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the value of---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@---     used to create the currently bound graphics pipeline was not equal---     to the 'Vulkan.Core10.Enums.Format.Format' used to create---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@,---     the value of the format /must/ be---     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'------ -   #VUID-vkCmdDrawIndexed-dynamicRenderingUnusedAttachments-08916# If---     the current render pass instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>---     feature is not enabled, and---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@---     was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@---     used to create the currently bound graphics pipeline /must/ be equal---     to 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'------ -   #VUID-vkCmdDrawIndexed-dynamicRenderingUnusedAttachments-08917# If---     current render pass instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>---     feature is not enabled, and---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@---     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@---     used to create the currently bound graphics pipeline /must/ be equal---     to the 'Vulkan.Core10.Enums.Format.Format' used to create---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@------ -   #VUID-vkCmdDrawIndexed-dynamicRenderingUnusedAttachments-08918# If---     the current render pass instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>---     feature is enabled,---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@---     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the value of---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@---     used to create the currently bound graphics pipeline was not equal---     to the 'Vulkan.Core10.Enums.Format.Format' used to create---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@,---     the value of the format /must/ be---     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'------ -   #VUID-vkCmdDrawIndexed-imageView-06183# If the current render pass---     instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'---     and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentShadingRateAttachmentInfoKHR'::@imageView@---     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the currently---     bound graphics pipeline /must/ have been created with---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'------ -   #VUID-vkCmdDrawIndexed-imageView-06184# If the current render pass---     instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'---     and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT'::@imageView@---     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the currently---     bound graphics pipeline /must/ have been created with---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT'------ -   #VUID-vkCmdDrawIndexed-colorAttachmentCount-06185# If the currently---     bound pipeline was created with a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     structure, and the current render pass instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'---     with a---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@---     parameter greater than @0@, then each element of the---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@---     array with a @imageView@ not equal to---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created---     with a sample count equal to the corresponding element of the---     @pColorAttachmentSamples@ member of---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     used to create the currently bound graphics pipeline------ -   #VUID-vkCmdDrawIndexed-pDepthAttachment-06186# If the current render---     pass instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     the currently bound pipeline was created with a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     structure, and---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@---     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the---     @depthStencilAttachmentSamples@ member of---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     used to create the currently bound graphics pipeline /must/ be equal---     to the sample count used to create---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@------ -   #VUID-vkCmdDrawIndexed-pStencilAttachment-06187# If the current---     render pass instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     the currently bound pipeline was created with a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     structure, and---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@---     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the---     @depthStencilAttachmentSamples@ member of---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     used to create the currently bound graphics pipeline /must/ be equal---     to the sample count used to create---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@------ -   #VUID-vkCmdDrawIndexed-multisampledRenderToSingleSampled-07285# If---     the currently bound pipeline was created without a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     structure, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>---     feature is not enabled, and the current render pass instance was---     begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'---     with a---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@---     parameter greater than @0@, then each element of the---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@---     array with a @imageView@ not equal to---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created---     with a sample count equal to the value of @rasterizationSamples@ for---     the currently bound graphics pipeline------ -   #VUID-vkCmdDrawIndexed-multisampledRenderToSingleSampled-07286# If---     the current render pass instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     the currently bound pipeline was created without a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     structure, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>---     feature is not enabled, and---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@---     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of---     @rasterizationSamples@ for the currently bound graphics pipeline---     /must/ be equal to the sample count used to create---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@------ -   #VUID-vkCmdDrawIndexed-multisampledRenderToSingleSampled-07287# If---     the current render pass instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     the currently bound pipeline was created without a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     structure, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>---     feature is not enabled, and---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@---     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of---     @rasterizationSamples@ for the currently bound graphics pipeline---     /must/ be equal to the sample count used to create---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@------ -   #VUID-vkCmdDrawIndexed-pNext-07935# If this command has been called---     inside a render pass instance started with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     and the @pNext@ chain of---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'---     includes a---     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'---     structure with @multisampledRenderToSingleSampledEnable@ equal to---     'Vulkan.Core10.FundamentalTypes.TRUE', then the value of---     @rasterizationSamples@ for the currently bound graphics pipeline---     /must/ be equal to---     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'::@rasterizationSamples@------ -   #VUID-vkCmdDrawIndexed-renderPass-06198# If the current render pass---     instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     the currently bound pipeline /must/ have been created with a---     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@renderPass@---     equal to 'Vulkan.Core10.APIConstants.NULL_HANDLE'------ -   #VUID-vkCmdDrawIndexed-pColorAttachments-08963# If the current---     render pass instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     there is a graphics pipeline bound with a fragment shader that---     statically writes to a color attachment, the color write mask is not---     zero, color writes are enabled, and the corresponding element of the---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments->imageView@---     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the---     corresponding element of---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@---     used to create the pipeline /must/ not be---     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'------ -   #VUID-vkCmdDrawIndexed-pDepthAttachment-08964# If the current render---     pass instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     there is a graphics pipeline bound, depth test is enabled, depth---     write is enabled, and the---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@---     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@---     used to create the pipeline /must/ not be---     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'------ -   #VUID-vkCmdDrawIndexed-pStencilAttachment-08965# If the current---     render pass instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     there is a graphics pipeline bound, stencil test is enabled and the---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@---     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@---     used to create the pipeline /must/ not be---     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'------ -   #VUID-vkCmdDrawIndexed-primitivesGeneratedQueryWithRasterizerDiscard-06708#---     If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithRasterizerDiscard primitivesGeneratedQueryWithRasterizerDiscard>---     feature is not enabled and the---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'---     query is active,---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-discard rasterization discard>---     /must/ not be enabled------ -   #VUID-vkCmdDrawIndexed-primitivesGeneratedQueryWithNonZeroStreams-06709#---     If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams primitivesGeneratedQueryWithNonZeroStreams>---     feature is not enabled and the---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'---     query is active, the bound graphics pipeline /must/ not have been---     created with a non-zero value in---     'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT'::@rasterizationStream@------ -   #VUID-vkCmdDrawIndexed-None-07619# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetTessellationDomainOriginEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-07620# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-09237# If a shader object is bound to---     the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'---     stage, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetTessellationDomainOriginEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-08650# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClamp depthClamp>---     feature is enabled, and a shader object is bound to any graphics---     stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-07621# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_POLYGON_MODE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-08651# If a shader object is bound to---     any graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-07622# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-08652# If a shader object is bound to---     any graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-07623# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-08653# If a shader object is bound to---     any graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-07624# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-alphaToCoverageEnable-08919# If the bound---     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT'---     dynamic state enabled, and @alphaToCoverageEnable@ was---     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT',---     then the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutput Fragment Output Interface>---     /must/ contain a variable for the alpha @Component@ word in---     @Location@ 0 at @Index@ 0------ -   #VUID-vkCmdDrawIndexed-None-08654# If a shader object is bound to---     any graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-alphaToCoverageEnable-08920# If a shader---     object is bound to any graphics stage, and the most recent call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'---     in the current command buffer set @alphaToCoverageEnable@ to---     'Vulkan.Core10.FundamentalTypes.TRUE', then the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutput Fragment Output Interface>---     /must/ contain a variable for the alpha @Component@ word in---     @Location@ 0 at @Index@ 0------ -   #VUID-vkCmdDrawIndexed-None-07625# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToOneEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-08655# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-alphaToOne alphaToOne>---     feature is enabled, and a shader object is bound to any graphics---     stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToOneEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-07626# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLogicOpEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-08656# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>---     feature is enabled, and a shader object is bound to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'---     stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLogicOpEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-07627# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-08657# If a shader object is bound to---     the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'---     stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-07628# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-08658# If a shader object is bound to---     any graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'---     for any attachment set that attachment’s value in---     @pColorBlendEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-07629# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-08659# If a shader object is bound to---     the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'---     stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-07630# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_STREAM_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-08660# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryStreams geometryStreams>---     feature is enabled, and a shader object is bound to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'---     stage, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-07631# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-08661# If the---     @VK_EXT_conservative_rasterization@ extension is enabled, and a---     shader object is bound to any graphics stage, and the most recent---     call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-07632# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetExtraPrimitiveOverestimationSizeEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-08662# If the---     @VK_EXT_conservative_rasterization@ extension is enabled, and a---     shader object is bound to any graphics stage, and the most recent---     call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'---     in the current command buffer set @conservativeRasterizationMode@ to---     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT',---     then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetExtraPrimitiveOverestimationSizeEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-07633# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-08663# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipEnable depthClipEnable>---     feature is enabled, and a shader object is bound to any graphics---     stage, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-07634# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-08664# If the @VK_EXT_sample_locations@---     extension is enabled, and a shader object is bound to any graphics---     stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-07635# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-07636# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetProvokingVertexModeEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-08665# If the @VK_EXT_provoking_vertex@---     extension is enabled, and a shader object is bound to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'---     stage, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetProvokingVertexModeEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-07637# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-08666# If the---     @VK_EXT_line_rasterization@ extension is enabled, and a shader---     object is bound to any graphics stage, and the most recent call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'---     in the current command buffer set @polygonMode@ to---     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-08667# If the---     @VK_EXT_line_rasterization@ extension is enabled, and a shader---     object is bound to the vertex stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'---     in the current command buffer set @primitiveTopology@ to any line---     topology, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-08668# If the---     @VK_EXT_line_rasterization@ extension is enabled, and a shader---     object that outputs line primitives is bound to the tessellation---     evaluation or geometry stage, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-07638# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-08669# If the---     @VK_EXT_line_rasterization@ extension is enabled, and a shader---     object is bound to any graphics stage, and the most recent call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'---     in the current command buffer set @polygonMode@ to---     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-08670# If the---     @VK_EXT_line_rasterization@ extension is enabled, and a shader---     object is bound to the vertex stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'---     in the current command buffer set @primitiveTopology@ to any line---     topology, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-08671# If the---     @VK_EXT_line_rasterization@ extension is enabled, and a shader---     object that outputs line primitives is bound to the tessellation---     evaluation or geometry stage, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-07849# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-08672# If the---     @VK_EXT_line_rasterization@ extension is enabled, and a shader---     object is bound to any graphics stage, and the most recent call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'---     in the current command buffer set @stippledLineEnable@ to---     'Vulkan.Core10.FundamentalTypes.TRUE', then---     'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-07639# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipNegativeOneToOneEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-08673# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipControl depthClipControl>---     feature is enabled, and a shader object is bound to any graphics---     stage, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipNegativeOneToOneEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-07640# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportWScalingEnableNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-08674# If the---     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader---     object is bound to any graphics stage, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportWScalingEnableNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-07641# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportSwizzleNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-08675# If the @VK_NV_viewport_swizzle@---     extension is enabled, and a shader object is bound to any graphics---     stage, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportSwizzleNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-07642# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-08676# If the---     @VK_NV_fragment_coverage_to_color@ extension is enabled, and a---     shader object is bound to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'---     stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-07643# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-08677# If the---     @VK_NV_fragment_coverage_to_color@ extension is enabled, and a---     shader object is bound to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'---     stage, and the most recent call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'---     in the current command buffer set @coverageToColorEnable@ to---     'Vulkan.Core10.FundamentalTypes.TRUE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-07644# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-08678# If the---     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader---     object is bound to any graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-07645# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-08679# If the---     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader---     object is bound to any graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV'---     in the current command buffer set coverageModulationMode to any---     value other than---     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.COVERAGE_MODULATION_MODE_NONE_NV',---     then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-07646# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-08680# If the---     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader---     object is bound to any graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'---     in the current command buffer set @coverageModulationTableEnable@ to---     'Vulkan.Core10.FundamentalTypes.TRUE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-07647# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-pipelineFragmentShadingRate-09238# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate>---     feature is enabled, and a shader object is bound to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'---     stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set rasterizerDiscardEnable to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'---     must have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-08681# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>---     feature is enabled, and a shader object is bound to any graphics---     stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-07648# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-08682# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-representativeFragmentTest representativeFragmentTest>---     feature is enabled, and a shader object is bound to any graphics---     stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-07649# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-08683# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-coverageReductionMode coverageReductionMode>---     feature is enabled, and a shader object is bound to any graphics---     stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-pColorBlendEnables-07470# If the bound---     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'---     state enabled and the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'---     set @pColorBlendEnables@ for any attachment to---     'Vulkan.Core10.FundamentalTypes.TRUE', then for those attachments in---     the subpass the corresponding image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT'------ -   #VUID-vkCmdDrawIndexed-rasterizationSamples-07471# If the bound---     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'---     state enabled, and the current subpass does not use any color---     and\/or depth\/stencil attachments, then the @rasterizationSamples@---     in the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'---     /must/ follow the rules for a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-noattachments zero-attachment subpass>------ -   #VUID-vkCmdDrawIndexed-samples-07472# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT'---     state enabled and the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'---     state disabled, then the @samples@ parameter in the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'---     /must/ be greater or equal to the---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@---     parameter used to create the bound graphics pipeline------ -   #VUID-vkCmdDrawIndexed-samples-07473# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT'---     state and---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'---     states enabled, then the @samples@ parameter in the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'---     /must/ be greater or equal to the @rasterizationSamples@ parameter---     in the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'------ -   #VUID-vkCmdDrawIndexed-rasterizationSamples-07474# If the bound---     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'---     state enabled, and neither the @VK_AMD_mixed_attachment_samples@ nor---     the @VK_NV_framebuffer_mixed_samples@ extensions are enabled, then---     the @rasterizationSamples@ in the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'---     /must/ be the same as the current subpass color and\/or---     depth\/stencil attachments------ -   #VUID-vkCmdDrawIndexed-None-09211# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'---     state enabled, or a shader object is bound to any graphics stage,---     and the current render pass instance includes a---     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'---     structure with @multisampledRenderToSingleSampledEnable@ equal to---     'Vulkan.Core10.FundamentalTypes.TRUE', then the---     @rasterizationSamples@ in the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'---     /must/ be the same as the @rasterizationSamples@ member of that---     structure------ -   #VUID-vkCmdDrawIndexed-firstAttachment-07476# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command, and the attachments specified by the---     @firstAttachment@ and @attachmentCount@ parameters of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'---     calls /must/ specify an enable for all active color attachments in---     the current subpass------ -   #VUID-vkCmdDrawIndexed-firstAttachment-07477# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command, and the attachments specified by the---     @firstAttachment@ and @attachmentCount@ parameters of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'---     calls /must/ specify the blend equations for all active color---     attachments in the current subpass where blending is enabled------ -   #VUID-vkCmdDrawIndexed-firstAttachment-07478# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command, and the attachments specified by the---     @firstAttachment@ and @attachmentCount@ parameters of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'---     calls /must/ specify the color write mask for all active color---     attachments in the current subpass------ -   #VUID-vkCmdDrawIndexed-firstAttachment-07479# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command, and the attachments specified by the---     @firstAttachment@ and @attachmentCount@ parameters of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'---     calls /must/ specify the advanced blend equations for all active---     color attachments in the current subpass where blending is enabled------ -   #VUID-vkCmdDrawIndexed-advancedBlendMaxColorAttachments-07480# If---     the bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT'---     and---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'---     dynamic states enabled and the last calls to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'---     and---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'---     have enabled advanced blending, then the number of active color---     attachments in the current subpass /must/ not exceed---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-advancedBlendMaxColorAttachments advancedBlendMaxColorAttachments>------ -   #VUID-vkCmdDrawIndexed-primitivesGeneratedQueryWithNonZeroStreams-07481#---     If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams primitivesGeneratedQueryWithNonZeroStreams>---     feature is not enabled and the---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'---     query is active, and the bound graphics pipeline was created with---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_STREAM_EXT'---     state enabled, the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT'---     /must/ have set the @rasterizationStream@ to zero------ -   #VUID-vkCmdDrawIndexed-sampleLocationsPerPixel-07482# If the bound---     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'---     state enabled and the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'---     state disabled, then the @sampleLocationsPerPixel@ member of---     @pSampleLocationsInfo@ in the last call to---     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'---     /must/ equal the @rasterizationSamples@ member of the---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'---     structure the bound graphics pipeline has been created with------ -   #VUID-vkCmdDrawIndexed-sampleLocationsPerPixel-07483# If the bound---     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'---     state enabled and the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'---     state enabled, then the @sampleLocationsPerPixel@ member of---     @pSampleLocationsInfo@ in the last call to---     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'---     /must/ equal the @rasterizationSamples@ parameter of the last call---     to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'------ -   #VUID-vkCmdDrawIndexed-sampleLocationsEnable-07484# If the bound---     graphics pipeline was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'---     state enabled, and @sampleLocationsEnable@ was---     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',---     and the current subpass has a depth\/stencil attachment, then that---     attachment /must/ have been created with the---     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT'---     bit set------ -   #VUID-vkCmdDrawIndexed-sampleLocationsEnable-07485# If the bound---     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'---     state enabled and the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'---     state enabled, and if @sampleLocationsEnable@ was---     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',---     then the @sampleLocationsInfo.sampleLocationGridSize.width@ in the---     last call to---     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'---     /must/ evenly divide---     'Vulkan.Extensions.VK_EXT_sample_locations.MultisamplePropertiesEXT'::@sampleLocationGridSize.width@---     as returned by---     'Vulkan.Extensions.VK_EXT_sample_locations.getPhysicalDeviceMultisamplePropertiesEXT'---     with a @samples@ parameter equaling @rasterizationSamples@------ -   #VUID-vkCmdDrawIndexed-sampleLocationsEnable-07486# If the bound---     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'---     state enabled and the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'---     state enabled, and if @sampleLocationsEnable@ was---     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',---     then the @sampleLocationsInfo.sampleLocationGridSize.height@ in the---     last call to---     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'---     /must/ evenly divide---     'Vulkan.Extensions.VK_EXT_sample_locations.MultisamplePropertiesEXT'::@sampleLocationGridSize.height@---     as returned by---     'Vulkan.Extensions.VK_EXT_sample_locations.getPhysicalDeviceMultisamplePropertiesEXT'---     with a @samples@ parameter equaling @rasterizationSamples@------ -   #VUID-vkCmdDrawIndexed-sampleLocationsEnable-07487# If the bound---     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'---     state enabled, and if @sampleLocationsEnable@ was---     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',---     the fragment shader code /must/ not statically use the extended---     instruction @InterpolateAtSample@------ -   #VUID-vkCmdDrawIndexed-sampleLocationsEnable-07936# If the bound---     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'---     state disabled and the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'---     state enabled, the @sampleLocationsEnable@ member of a---     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@---     in the bound graphics pipeline is---     'Vulkan.Core10.FundamentalTypes.TRUE' or---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'---     state enabled, then,---     @sampleLocationsInfo.sampleLocationGridSize.width@ /must/ evenly---     divide---     'Vulkan.Extensions.VK_EXT_sample_locations.MultisamplePropertiesEXT'::@sampleLocationGridSize.width@---     as returned by---     'Vulkan.Extensions.VK_EXT_sample_locations.getPhysicalDeviceMultisamplePropertiesEXT'---     with a @samples@ parameter equaling the value of---     @rasterizationSamples@ in the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'------ -   #VUID-vkCmdDrawIndexed-sampleLocationsEnable-07937# If the bound---     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'---     state disabled and the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'---     state enabled, the @sampleLocationsEnable@ member of a---     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@---     in the bound graphics pipeline is---     'Vulkan.Core10.FundamentalTypes.TRUE' or---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'---     state enabled, then,---     @sampleLocationsInfo.sampleLocationGridSize.height@ /must/ evenly---     divide---     'Vulkan.Extensions.VK_EXT_sample_locations.MultisamplePropertiesEXT'::@sampleLocationGridSize.height@---     as returned by---     'Vulkan.Extensions.VK_EXT_sample_locations.getPhysicalDeviceMultisamplePropertiesEXT'---     with a @samples@ parameter equaling the value of---     @rasterizationSamples@ in the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'------ -   #VUID-vkCmdDrawIndexed-sampleLocationsEnable-07938# If the bound---     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'---     state disabled and the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'---     state enabled, the @sampleLocationsEnable@ member of a---     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@---     in the bound graphics pipeline is---     'Vulkan.Core10.FundamentalTypes.TRUE' or---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'---     state enabled, then, @sampleLocationsInfo.sampleLocationsPerPixel@---     /must/ equal @rasterizationSamples@ in the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'------ -   #VUID-vkCmdDrawIndexed-coverageModulationTableEnable-07488# If the---     bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV'---     state enabled and the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'---     set @coverageModulationTableEnable@ to---     'Vulkan.Core10.FundamentalTypes.TRUE', then the---     @coverageModulationTableCount@ parameter in the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV'---     /must/ equal the current @rasterizationSamples@ divided by the---     number of color samples in the current subpass------ -   #VUID-vkCmdDrawIndexed-rasterizationSamples-07489# If the---     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and if---     current subpass has a depth\/stencil attachment and depth test,---     stencil test, or depth bounds test are enabled in the currently---     bound pipeline state, then the current @rasterizationSamples@ /must/---     be the same as the sample count of the depth\/stencil attachment------ -   #VUID-vkCmdDrawIndexed-coverageToColorEnable-07490# If the bound---     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV'---     state enabled and the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'---     set the @coverageToColorEnable@ to---     'Vulkan.Core10.FundamentalTypes.TRUE', then the current subpass---     /must/ have a color attachment at the location selected by the last---     call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV'---     @coverageToColorLocation@, with a---     'Vulkan.Core10.Enums.Format.Format' of---     'Vulkan.Core10.Enums.Format.FORMAT_R8_UINT',---     'Vulkan.Core10.Enums.Format.FORMAT_R8_SINT',---     'Vulkan.Core10.Enums.Format.FORMAT_R16_UINT',---     'Vulkan.Core10.Enums.Format.FORMAT_R16_SINT',---     'Vulkan.Core10.Enums.Format.FORMAT_R32_UINT', or---     'Vulkan.Core10.Enums.Format.FORMAT_R32_SINT'------ -   #VUID-vkCmdDrawIndexed-coverageReductionMode-07491# If this---     @VK_NV_coverage_reduction_mode@ extension is enabled, the bound---     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV'---     and---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'---     states enabled, the current coverage reduction mode---     @coverageReductionMode@, then the current @rasterizationSamples@,---     and the sample counts for the color and depth\/stencil attachments---     (if the subpass has them) /must/ be a valid combination returned by---     'Vulkan.Extensions.VK_NV_coverage_reduction_mode.getPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV'------ -   #VUID-vkCmdDrawIndexed-viewportCount-07492# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'---     dynamic state enabled, but not the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV'---     dynamic state enabled, then the bound graphics pipeline /must/ have---     been created with---     'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'::@viewportCount@---     greater or equal to the @viewportCount@ parameter in the last call---     to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'------ -   #VUID-vkCmdDrawIndexed-viewportCount-07493# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'---     and---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV'---     dynamic states enabled then the @viewportCount@ parameter in the---     last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportSwizzleNV'---     /must/ be greater than or equal to the @viewportCount@ parameter in---     the last call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'------ -   #VUID-vkCmdDrawIndexed-rasterizationSamples-07494# If the---     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and if the---     current subpass has any color attachments and @rasterizationSamples@---     of the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'---     is greater than the number of color samples, then the pipeline---     @sampleShadingEnable@ /must/ be---     'Vulkan.Core10.FundamentalTypes.FALSE'------ -   #VUID-vkCmdDrawIndexed-stippledLineEnable-07495# If the bound---     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'---     or---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'---     dynamic states enabled, and if the current @stippledLineEnable@---     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current---     @lineRasterizationMode@ state is---     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_EXT',---     then the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>---     feature /must/ be enabled------ -   #VUID-vkCmdDrawIndexed-stippledLineEnable-07496# If the bound---     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'---     or---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'---     dynamic states enabled, and if the current @stippledLineEnable@---     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current---     @lineRasterizationMode@ state is---     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_BRESENHAM_EXT',---     then the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>---     feature /must/ be enabled------ -   #VUID-vkCmdDrawIndexed-stippledLineEnable-07497# If the bound---     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'---     or---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'---     dynamic states enabled, and if the current @stippledLineEnable@---     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current---     @lineRasterizationMode@ state is---     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT',---     then the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>---     feature /must/ be enabled------ -   #VUID-vkCmdDrawIndexed-stippledLineEnable-07498# If the bound---     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'---     or---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'---     dynamic states enabled, and if the current @stippledLineEnable@---     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current---     @lineRasterizationMode@ state is---     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_DEFAULT_EXT',---     then the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>---     feature /must/ be enabled and---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@strictLines@---     /must/ be 'Vulkan.Core10.FundamentalTypes.TRUE'------ -   #VUID-vkCmdDrawIndexed-conservativePointAndLineRasterization-07499#---     If the bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT'---     dynamic state enabled,---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-conservativePointAndLineRasterization conservativePointAndLineRasterization>---     is not supported, and the effective primitive topology output by the---     last pre-rasterization shader stage is a line or point, then the---     @conservativeRasterizationMode@ set by the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'---     /must/ be---     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT'------ -   #VUID-vkCmdDrawIndexed-stage-07073# If the currently bound pipeline---     was created with the---     'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@---     member of an element of---     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pStages@ set---     to---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT',---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT',---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'---     or---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT',---     then---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-mesh-shader Mesh Shader Queries>---     /must/ not be active------ -   #VUID-vkCmdDrawIndexed-None-08877# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'---     dynamic state---     'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-07850# If dynamic state was inherited---     from---     'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV',---     it /must/ be set in the current command buffer prior to this drawing---     command------ -   #VUID-vkCmdDrawIndexed-None-08684# If there is no bound graphics---     pipeline, 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT'---     /must/ have been called in the current command buffer with @pStages@---     with an element of---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'------ -   #VUID-vkCmdDrawIndexed-None-08685# If there is no bound graphics---     pipeline, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>---     feature is enabled,---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/---     have been called in the current command buffer with @pStages@ with---     an element of---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT'------ -   #VUID-vkCmdDrawIndexed-None-08686# If there is no bound graphics---     pipeline, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>---     feature is enabled,---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/---     have been called in the current command buffer with @pStages@ with---     an element of---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'------ -   #VUID-vkCmdDrawIndexed-None-08687# If there is no bound graphics---     pipeline, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader>---     feature is enabled,---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/---     have been called in the current command buffer with @pStages@ with---     an element of---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'------ -   #VUID-vkCmdDrawIndexed-None-08688# If there is no bound graphics---     pipeline, 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT'---     /must/ have been called in the current command buffer with @pStages@---     with an element of---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'------ -   #VUID-vkCmdDrawIndexed-None-08689# If there is no bound graphics---     pipeline, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>---     feature is enabled,---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/---     have been called in the current command buffer with @pStages@ with---     an element of---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'------ -   #VUID-vkCmdDrawIndexed-None-08690# If there is no bound graphics---     pipeline, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>---     feature is enabled,---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/---     have been called in the current command buffer with @pStages@ with---     an element of---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'------ -   #VUID-vkCmdDrawIndexed-None-08693# If there is no bound graphics---     pipeline, and at least one of the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>---     and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>---     features is enabled, one of the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' or---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'---     stages /must/ have a valid 'Vulkan.Extensions.Handles.ShaderEXT'---     bound, and the other /must/ have no---     'Vulkan.Extensions.Handles.ShaderEXT' bound------ -   #VUID-vkCmdDrawIndexed-None-08694# If there is no bound graphics---     pipeline, and both the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>---     and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>---     features are enabled, and a valid---     'Vulkan.Extensions.Handles.ShaderEXT' is bound the to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'---     stage, and that 'Vulkan.Extensions.Handles.ShaderEXT' was created---     without the---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_NO_TASK_SHADER_BIT_EXT'---     flag, a valid 'Vulkan.Extensions.Handles.ShaderEXT' /must/ be bound---     to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'---     stage------ -   #VUID-vkCmdDrawIndexed-None-08695# If there is no bound graphics---     pipeline, and both the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>---     and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>---     features are enabled, and a valid---     'Vulkan.Extensions.Handles.ShaderEXT' is bound the to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'---     stage, and that 'Vulkan.Extensions.Handles.ShaderEXT' was created---     with the---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_NO_TASK_SHADER_BIT_EXT'---     flag, there /must/ be no 'Vulkan.Extensions.Handles.ShaderEXT' bound---     to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'---     stage------ -   #VUID-vkCmdDrawIndexed-None-08696# If there is no bound graphics---     pipeline, and a valid 'Vulkan.Extensions.Handles.ShaderEXT' is bound---     to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'---     stage, there /must/ be no 'Vulkan.Extensions.Handles.ShaderEXT'---     bound to either the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'---     stage or the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'---     stage------ -   #VUID-vkCmdDrawIndexed-None-08698# If any graphics shader is bound---     which was created with the---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'---     flag, then all shaders created with the---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'---     flag in the same---     'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call---     /must/ also be bound------ -   #VUID-vkCmdDrawIndexed-None-08699# If any graphics shader is bound---     which was created with the---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'---     flag, any stages in between stages whose shaders which did not---     create a shader with the---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'---     flag as part of the same---     'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call---     /must/ not have any 'Vulkan.Extensions.Handles.ShaderEXT' bound------ -   #VUID-vkCmdDrawIndexed-None-08878# All bound graphics shader objects---     /must/ have been created with identical or identically defined push---     constant ranges------ -   #VUID-vkCmdDrawIndexed-None-08879# All bound graphics shader objects---     /must/ have been created with identical or identically defined---     arrays of descriptor set layouts------ -   #VUID-vkCmdDrawIndexed-colorAttachmentCount-09372# If the current---     render pass instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'---     and a---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@---     equal to @1@, a color attachment with a resolve mode of---     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',---     and a fragment shader is bound, it /must/ not declare the---     @DepthReplacing@ or @StencilRefReplacingEXT@ execution modes------ -   #VUID-vkCmdDrawIndexed-None-08880# If a shader object is bound to---     the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'---     stage and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFeedbackLoopDynamicState attachmentFeedbackLoopDynamicState>---     feature is enabled on the device, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE'---     'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-pDynamicStates-08715# If the bound graphics---     pipeline state includes a fragment shader stage, was created with---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'---     set in---     'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@,---     and the fragment shader declares the @EarlyFragmentTests@ execution---     mode and uses @OpDepthAttachmentReadEXT@, the @depthWriteEnable@---     parameter in the last call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'---     /must/ be 'Vulkan.Core10.FundamentalTypes.FALSE'------ -   #VUID-vkCmdDrawIndexed-pDynamicStates-08716# If the bound graphics---     pipeline state includes a fragment shader stage, was created with---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'---     set in---     'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@,---     and the fragment shader declares the @EarlyFragmentTests@ execution---     mode and uses @OpStencilAttachmentReadEXT@, the @writeMask@---     parameter in the last call to 'cmdSetStencilWriteMask' /must/ be @0@------ -   #VUID-vkCmdDrawIndexed-None-09116# If a shader object is bound to---     any graphics stage or the currently bound graphics pipeline was---     created with---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT',---     and the format of any color attachment is---     'Vulkan.Core10.Enums.Format.FORMAT_E5B9G9R9_UFLOAT_PACK32', the---     corresponding element of the @pColorWriteMasks@ parameter of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'---     /must/ either include all of---     'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_R_BIT',---     'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_G_BIT',---     and---     'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_B_BIT',---     or none of them------ -   #VUID-vkCmdDrawIndexed-maxFragmentDualSrcAttachments-09239# If---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-blending blending>---     is enabled for any attachment where either the source or destination---     blend factors for that attachment---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-dsb use the secondary color input>,---     the maximum value of @Location@ for any output attachment---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-staticuse statically used>---     in the @Fragment@ @Execution@ @Model@ executed by this command---     /must/ be less than---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxFragmentDualSrcAttachments maxFragmentDualSrcAttachments>------ -   #VUID-vkCmdDrawIndexed-commandBuffer-02712# If @commandBuffer@ is a---     protected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, any resource written to by the---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command /must/ not be an unprotected resource------ -   #VUID-vkCmdDrawIndexed-commandBuffer-02713# If @commandBuffer@ is a---     protected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, pipeline stages other than the framebuffer-space---     and compute stages in the 'Vulkan.Core10.Handles.Pipeline' object---     bound to the pipeline bind point used by this command /must/ not---     write to any resource------ -   #VUID-vkCmdDrawIndexed-commandBuffer-04617# If any of the shader---     stages of the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline---     bind point used by this command uses the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-RayQueryKHR RayQueryKHR>---     capability, then @commandBuffer@ /must/ not be a protected command---     buffer------ -   #VUID-vkCmdDrawIndexed-None-04007# All vertex input bindings---     accessed via vertex input variables declared in the vertex shader---     entry point’s interface /must/ have either valid or---     'Vulkan.Core10.APIConstants.NULL_HANDLE' buffers bound------ -   #VUID-vkCmdDrawIndexed-None-04008# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>---     feature is not enabled, all vertex input bindings accessed via---     vertex input variables declared in the vertex shader entry point’s---     interface /must/ not be 'Vulkan.Core10.APIConstants.NULL_HANDLE'------ -   #VUID-vkCmdDrawIndexed-None-02721# For a given vertex buffer---     binding, any attribute data fetched /must/ be entirely contained---     within the corresponding vertex buffer binding, as described in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input ???>------ -   #VUID-vkCmdDrawIndexed-None-07842# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY'---     dynamic state enabled then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-dynamicPrimitiveTopologyUnrestricted-07500#---     If the bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY'---     dynamic state enabled and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-dynamicPrimitiveTopologyUnrestricted dynamicPrimitiveTopologyUnrestricted>---     is 'Vulkan.Core10.FundamentalTypes.FALSE', then the---     @primitiveTopology@ parameter of---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'---     /must/ be of the same---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-primitive-topology-class topology class>---     as the pipeline---     'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@---     state------ -   #VUID-vkCmdDrawIndexed-None-04912# If the bound graphics pipeline---     was created with both the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'---     and---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'---     dynamic states enabled, then---     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'---     /must/ have been called in the current command buffer prior to this---     draw command------ -   #VUID-vkCmdDrawIndexed-pStrides-04913# If the bound graphics---     pipeline was created with the---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'---     dynamic state enabled, but not the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'---     dynamic state enabled, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'---     /must/ have been called in the current command buffer prior to this---     draw command, and the @pStrides@ parameter of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'---     /must/ not be @NULL@------ -   #VUID-vkCmdDrawIndexed-None-08881# If a shader object is bound to---     the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'---     stage, then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-04914# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'---     dynamic state enabled, then---     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'---     /must/ have been called in the current command buffer prior to this---     draw command------ -   #VUID-vkCmdDrawIndexed-Input-07939# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'---     dynamic state enabled, then all variables with the @Input@ storage---     class decorated with @Location@ in the @Vertex@ @Execution@ @Model@---     @OpEntryPoint@ /must/ contain a location in---     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@location@------ -   #VUID-vkCmdDrawIndexed-Input-08734# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'---     dynamic state enabled, then the numeric type associated with all---     @Input@ variables of the corresponding @Location@ in the @Vertex@---     @Execution@ @Model@ @OpEntryPoint@ /must/ be the same as---     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@------ -   #VUID-vkCmdDrawIndexed-format-08936# If there is a shader object---     bound to a graphics stage or the currently bound graphics pipeline---     was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'---     dynamic state enabled, and---     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@---     has a 64-bit component, then the scalar width associated with all---     @Input@ variables of the corresponding @Location@ in the @Vertex@---     @Execution@ @Model@ @OpEntryPoint@ /must/ be 64-bit------ -   #VUID-vkCmdDrawIndexed-format-08937# If there is a shader object---     bound to a graphics stage or the currently bound graphics pipeline---     was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'---     dynamic state enabled, and the scalar width associated with a---     @Location@ decorated @Input@ variable in the @Vertex@ @Execution@---     @Model@ @OpEntryPoint@ is 64-bit, then the corresponding---     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@---     /must/ have a 64-bit component------ -   #VUID-vkCmdDrawIndexed-None-09203# If there is a shader object bound---     to a graphics stage or the currently bound graphics pipeline was---     created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'---     dynamic state enabled, and---     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@---     has a 64-bit component, then all @Input@ variables at the---     corresponding @Location@ in the @Vertex@ @Execution@ @Model@---     @OpEntryPoint@ /must/ not use components that are not present in the---     format------ -   #VUID-vkCmdDrawIndexed-None-08882# If a shader object is bound to---     the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'---     stage, then---     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-04875# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-08883# If a shader object is bound to---     the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'---     stage, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-None-04879# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE'---     dynamic state enabled then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnable'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-rasterizerDiscardEnable-08884# If a shader---     object is bound to any graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE',---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnable'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexed-stage-06481# The bound graphics pipeline---     /must/ not have been created with the---     'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@---     member of an element of---     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pStages@ set---     to---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'---     or---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'------ -   #VUID-vkCmdDrawIndexed-None-08885# There /must/ be no shader object---     bound to either of the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'---     or---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'---     stages------ -   #VUID-vkCmdDrawIndexed-None-07312# An index buffer /must/ be bound------ -   #VUID-vkCmdDrawIndexed-robustBufferAccess2-07825# If---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2>---     is not enabled, (@indexSize@ × (@firstIndex@ + @indexCount@) +---     @offset@) /must/ be less than or equal to the size of the bound---     index buffer, with @indexSize@ being based on the type specified by---     @indexType@, where the index buffer, @indexType@, and @offset@ are---     specified via 'cmdBindIndexBuffer'------ -   #VUID-vkCmdDrawIndexed-robustBufferAccess2-08798# If---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2>---     is not enabled, (@indexSize@ × (@firstIndex@ + @indexCount@) +---     @offset@) /must/ be less than or equal to the size of the bound---     index buffer, with @indexSize@ being based on the type specified by---     @indexType@, where the index buffer, @indexType@, and @offset@ are---     specified via 'cmdBindIndexBuffer' or---     'Vulkan.Extensions.VK_KHR_maintenance5.cmdBindIndexBuffer2KHR'. If---     'Vulkan.Extensions.VK_KHR_maintenance5.cmdBindIndexBuffer2KHR' is---     used to bind the index buffer, the size of the bound index buffer is---     'Vulkan.Extensions.VK_KHR_maintenance5.cmdBindIndexBuffer2KHR'::@size@------ == Valid Usage (Implicit)------ -   #VUID-vkCmdDrawIndexed-commandBuffer-parameter# @commandBuffer@---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdDrawIndexed-commandBuffer-recording# @commandBuffer@---     /must/ be in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>------ -   #VUID-vkCmdDrawIndexed-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics operations------ -   #VUID-vkCmdDrawIndexed-renderpass# This command /must/ only be---     called inside of a render pass instance------ -   #VUID-vkCmdDrawIndexed-videocoding# This command /must/ only be---     called outside of a video coding scope------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |--- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+--- | Primary                                                                                                                    | Inside                                                                                                                 | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.CommandBuffer'-cmdDrawIndexed :: forall io-                . (MonadIO io)-               => -- | @commandBuffer@ is the command buffer into which the command is-                  -- recorded.-                  CommandBuffer-               -> -- | @indexCount@ is the number of vertices to draw.-                  ("indexCount" ::: Word32)-               -> -- | @instanceCount@ is the number of instances to draw.-                  ("instanceCount" ::: Word32)-               -> -- | @firstIndex@ is the base index within the index buffer.-                  ("firstIndex" ::: Word32)-               -> -- | @vertexOffset@ is the value added to the vertex index before indexing-                  -- into the vertex buffer.-                  ("vertexOffset" ::: Int32)-               -> -- | @firstInstance@ is the instance ID of the first instance to draw.-                  ("firstInstance" ::: Word32)-               -> io ()-cmdDrawIndexed commandBuffer-                 indexCount-                 instanceCount-                 firstIndex-                 vertexOffset-                 firstInstance = liftIO $ do-  let vkCmdDrawIndexedPtr = pVkCmdDrawIndexed (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  unless (vkCmdDrawIndexedPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDrawIndexed is null" Nothing Nothing-  let vkCmdDrawIndexed' = mkVkCmdDrawIndexed vkCmdDrawIndexedPtr-  traceAroundEvent "vkCmdDrawIndexed" (vkCmdDrawIndexed'-                                         (commandBufferHandle (commandBuffer))-                                         (indexCount)-                                         (instanceCount)-                                         (firstIndex)-                                         (vertexOffset)-                                         (firstInstance))-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdDrawIndirect-  :: FunPtr (Ptr CommandBuffer_T -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO ()---- | vkCmdDrawIndirect - Draw primitives with indirect parameters------ = Description------ 'cmdDrawIndirect' behaves similarly to 'cmdDraw' except that the--- parameters are read by the device from a buffer during execution.--- @drawCount@ draws are executed by the command, with parameters taken--- from @buffer@ starting at @offset@ and increasing by @stride@ bytes for--- each successive draw. The parameters of each draw are encoded in an--- array of 'Vulkan.Core10.OtherTypes.DrawIndirectCommand' structures. If--- @drawCount@ is less than or equal to one, @stride@ is ignored.------ == Valid Usage------ -   #VUID-vkCmdDrawIndirect-magFilter-04553# If a---     'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or---     @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and---     @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE' is---     used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of---     this command, then the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'------ -   #VUID-vkCmdDrawIndirect-mipmapMode-04770# If a---     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to---     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'---     and @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE'---     is used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of---     this command, then the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'------ -   #VUID-vkCmdDrawIndirect-None-06479# If a---     'Vulkan.Core10.Handles.ImageView' is sampled with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-depth-compare-operation depth comparison>,---     the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT'------ -   #VUID-vkCmdDrawIndirect-None-02691# If a---     'Vulkan.Core10.Handles.ImageView' is accessed using atomic---     operations as a result of this command, then the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT'------ -   #VUID-vkCmdDrawIndirect-None-07888# If a---     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER'---     descriptor is accessed using atomic operations as a result of this---     command, then the storage texel buffer’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-buffer-view-format-features format features>---     /must/ contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT'------ -   #VUID-vkCmdDrawIndirect-None-02692# If a---     'Vulkan.Core10.Handles.ImageView' is sampled with---     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this---     command, then the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'------ -   #VUID-vkCmdDrawIndirect-None-02693# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_filter_cubic VK_EXT_filter_cubic>---     extension is not enabled and any 'Vulkan.Core10.Handles.ImageView'---     is sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a---     result of this command, it /must/ not have a---     'Vulkan.Core10.Enums.ImageViewType.ImageViewType' of---     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D',---     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE', or---     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY'------ -   #VUID-vkCmdDrawIndirect-filterCubic-02694# Any---     'Vulkan.Core10.Handles.ImageView' being sampled with---     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this---     command /must/ have a---     'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that---     supports cubic filtering, as specified by---     'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubic@---     returned by---     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'------ -   #VUID-vkCmdDrawIndirect-filterCubicMinmax-02695# Any---     'Vulkan.Core10.Handles.ImageView' being sampled with---     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' with a reduction mode---     of either---     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'---     or---     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'---     as a result of this command /must/ have a---     'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that---     supports cubic filtering together with minmax filtering, as---     specified by---     'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubicMinmax@---     returned by---     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'------ -   #VUID-vkCmdDrawIndirect-cubicRangeClamp-09212# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-range-clamp cubicRangeClamp>---     feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView'---     being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as---     a result of this command------     [/must/ not have a 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo']---         @reductionMode@ equal to---         'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM'------ -   #VUID-vkCmdDrawIndirect-reductionMode-09213# Any---     'Vulkan.Core10.Handles.ImageView' being sampled with a---     'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'::@reductionMode@---     equal to---     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM'---     as a result of this command /must/ sample with---     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT'------ -   #VUID-vkCmdDrawIndirect-selectableCubicWeights-09214# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-weight-selection selectableCubicWeights>---     feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView'---     being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as---     a result of this command /must/ have---     'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.SamplerCubicWeightsCreateInfoQCOM'::@cubicWeights@---     equal to---     'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM'------ -   #VUID-vkCmdDrawIndirect-flags-02696# Any---     'Vulkan.Core10.Handles.Image' created with a---     'Vulkan.Core10.Image.ImageCreateInfo'::@flags@ containing---     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_CORNER_SAMPLED_BIT_NV'---     sampled as a result of this command /must/ only be sampled using a---     'Vulkan.Core10.Enums.SamplerAddressMode.SamplerAddressMode' of---     'Vulkan.Core10.Enums.SamplerAddressMode.SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE'------ -   #VUID-vkCmdDrawIndirect-OpTypeImage-07027# For any---     'Vulkan.Core10.Handles.ImageView' being written as a storage image---     where the image format field of the @OpTypeImage@ is @Unknown@, the---     view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'------ -   #VUID-vkCmdDrawIndirect-OpTypeImage-07028# For any---     'Vulkan.Core10.Handles.ImageView' being read as a storage image---     where the image format field of the @OpTypeImage@ is @Unknown@, the---     view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT'------ -   #VUID-vkCmdDrawIndirect-OpTypeImage-07029# For any---     'Vulkan.Core10.Handles.BufferView' being written as a storage texel---     buffer where the image format field of the @OpTypeImage@ is---     @Unknown@, the view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>---     /must/ contain---     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'------ -   #VUID-vkCmdDrawIndirect-OpTypeImage-07030# Any---     'Vulkan.Core10.Handles.BufferView' being read as a storage texel---     buffer where the image format field of the @OpTypeImage@ is---     @Unknown@ then the view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>---     /must/ contain---     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT'------ -   #VUID-vkCmdDrawIndirect-None-08600# For each set /n/ that is---     statically used by---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,---     a descriptor set /must/ have been bound to /n/ at the same pipeline---     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is---     compatible for set /n/, with the---     'Vulkan.Core10.Handles.PipelineLayout' or---     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>------ -   #VUID-vkCmdDrawIndirect-None-08601# For each push constant that is---     statically used by---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,---     a push constant value /must/ have been set for the same pipeline---     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is---     compatible for push constants, with the---     'Vulkan.Core10.Handles.PipelineLayout' or---     'Vulkan.Core10.Handles.DescriptorSetLayout' and---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>------ -   #VUID-vkCmdDrawIndirect-maintenance4-08602# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance4 maintenance4>---     feature is not enabled, then for each push constant that is---     statically used by---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,---     a push constant value /must/ have been set for the same pipeline---     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is---     compatible for push constants, with the---     'Vulkan.Core10.Handles.PipelineLayout' or---     'Vulkan.Core10.Handles.DescriptorSetLayout' and---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>------ -   #VUID-vkCmdDrawIndirect-None-08114# Descriptors in each bound---     descriptor set, specified via 'cmdBindDescriptorSets', /must/ be---     valid if they are statically used by the---     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point---     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'---     was not created with---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'------ -   #VUID-vkCmdDrawIndirect-None-08115# If the descriptors used by the---     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point---     were specified via 'cmdBindDescriptorSets', the bound---     'Vulkan.Core10.Handles.Pipeline' /must/ have been created without---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'------ -   #VUID-vkCmdDrawIndirect-None-08116# Descriptors in bound descriptor---     buffers, specified via---     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',---     /must/ be valid if they are dynamically used by the---     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point---     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'---     was created with---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'------ -   #VUID-vkCmdDrawIndirect-None-08604# Descriptors in bound descriptor---     buffers, specified via---     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',---     /must/ be valid if they are dynamically used by any---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding---     to the pipeline bind point used by this command------ -   #VUID-vkCmdDrawIndirect-None-08117# If the descriptors used by the---     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point---     were specified via---     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',---     the bound 'Vulkan.Core10.Handles.Pipeline' /must/ have been created---     with---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'------ -   #VUID-vkCmdDrawIndirect-None-08119# If a descriptor is dynamically---     used with a 'Vulkan.Core10.Handles.Pipeline' created with---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',---     the descriptor memory /must/ be resident------ -   #VUID-vkCmdDrawIndirect-None-08605# If a descriptor is dynamically---     used with a 'Vulkan.Extensions.Handles.ShaderEXT' created with a---     'Vulkan.Core10.Handles.DescriptorSetLayout' that was created with---     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',---     the descriptor memory /must/ be resident------ -   #VUID-vkCmdDrawIndirect-None-08606# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>---     feature is not enabled, a valid pipeline /must/ be bound to the---     pipeline bind point used by this command------ -   #VUID-vkCmdDrawIndirect-None-08607# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>---     is enabled, either a valid pipeline /must/ be bound to the pipeline---     bind point used by this command, or a valid combination of valid and---     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be---     bound to every supported shader stage corresponding to the pipeline---     bind point used by this command------ -   #VUID-vkCmdDrawIndirect-None-08608# If a pipeline is bound to the---     pipeline bind point used by this command, there /must/ not have been---     any calls to dynamic state setting commands for any state not---     specified as dynamic in the 'Vulkan.Core10.Handles.Pipeline' object---     bound to the pipeline bind point used by this command, since that---     pipeline was bound------ -   #VUID-vkCmdDrawIndirect-None-08609# If the---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command or any---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding---     to the pipeline bind point used by this command accesses a---     'Vulkan.Core10.Handles.Sampler' object that uses unnormalized---     coordinates, that sampler /must/ not be used to sample from any---     'Vulkan.Core10.Handles.Image' with a---     'Vulkan.Core10.Handles.ImageView' of the type---     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D',---     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE',---     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D_ARRAY',---     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D_ARRAY' or---     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY', in---     any shader stage------ -   #VUID-vkCmdDrawIndirect-None-08610# If the---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command or any---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding---     to the pipeline bind point used by this command accesses a---     'Vulkan.Core10.Handles.Sampler' object that uses unnormalized---     coordinates, that sampler /must/ not be used with any of the SPIR-V---     @OpImageSample*@ or @OpImageSparseSample*@ instructions with---     @ImplicitLod@, @Dref@ or @Proj@ in their name, in any shader stage------ -   #VUID-vkCmdDrawIndirect-None-08611# If the---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command or any---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding---     to the pipeline bind point used by this command accesses a---     'Vulkan.Core10.Handles.Sampler' object that uses unnormalized---     coordinates, that sampler /must/ not be used with any of the SPIR-V---     @OpImageSample*@ or @OpImageSparseSample*@ instructions that---     includes a LOD bias or any offset values, in any shader stage------ -   #VUID-vkCmdDrawIndirect-uniformBuffers-06935# If any stage of the---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command accesses a uniform buffer, and that stage---     was created without enabling either---     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'---     or---     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'---     for @uniformBuffers@, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>---     feature is not enabled, that stage /must/ not access values outside---     of the range of the buffer as specified in the descriptor set bound---     to the same pipeline bind point------ -   #VUID-vkCmdDrawIndirect-None-08612# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>---     feature is not enabled, and any---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding---     to the pipeline bind point used by this command accesses a uniform---     buffer, it /must/ not access values outside of the range of the---     buffer as specified in the descriptor set bound to the same pipeline---     bind point------ -   #VUID-vkCmdDrawIndirect-storageBuffers-06936# If any stage of the---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command accesses a storage buffer, and that stage---     was created without enabling either---     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'---     or---     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'---     for @storageBuffers@, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>---     feature is not enabled, that stage /must/ not access values outside---     of the range of the buffer as specified in the descriptor set bound---     to the same pipeline bind point------ -   #VUID-vkCmdDrawIndirect-None-08613# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>---     feature is not enabled, and any---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding---     to the pipeline bind point used by this command accesses a storage---     buffer, it /must/ not access values outside of the range of the---     buffer as specified in the descriptor set bound to the same pipeline---     bind point------ -   #VUID-vkCmdDrawIndirect-commandBuffer-02707# If @commandBuffer@ is---     an unprotected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, any resource accessed by---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding bound shaders>---     /must/ not be a protected resource------ -   #VUID-vkCmdDrawIndirect-None-06550# If---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>---     accesses a 'Vulkan.Core10.Handles.Sampler' or---     'Vulkan.Core10.Handles.ImageView' object that enables---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,---     that object /must/ only be used with @OpImageSample*@ or---     @OpImageSparseSample*@ instructions------ -   #VUID-vkCmdDrawIndirect-ConstOffset-06551# If---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>---     accesses a 'Vulkan.Core10.Handles.Sampler' or---     'Vulkan.Core10.Handles.ImageView' object that enables---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,---     that object /must/ not use the @ConstOffset@ and @Offset@ operands------ -   #VUID-vkCmdDrawIndirect-viewType-07752# If a---     'Vulkan.Core10.Handles.ImageView' is accessed as a result of this---     command, then the image view’s @viewType@ /must/ match the @Dim@---     operand of the @OpTypeImage@ as described in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-operation-validation ???>------ -   #VUID-vkCmdDrawIndirect-format-07753# If a---     'Vulkan.Core10.Handles.ImageView' is accessed as a result of this---     command, then the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-numericformat numeric type>---     of the image view’s @format@ and the @Sampled@ @Type@ operand of the---     @OpTypeImage@ /must/ match------ -   #VUID-vkCmdDrawIndirect-OpImageWrite-08795# If a---     'Vulkan.Core10.Handles.ImageView' created with a format other than---     'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using---     @OpImageWrite@ as a result of this command, then the @Type@ of the---     @Texel@ operand of that instruction /must/ have at least as many---     components as the image view’s format------ -   #VUID-vkCmdDrawIndirect-OpImageWrite-08796# If a---     'Vulkan.Core10.Handles.ImageView' created with the format---     'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using---     @OpImageWrite@ as a result of this command, then the @Type@ of the---     @Texel@ operand of that instruction /must/ have four components------ -   #VUID-vkCmdDrawIndirect-OpImageWrite-04469# If a---     'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@---     as a result of this command, then the @Type@ of the @Texel@ operand---     of that instruction /must/ have at least as many components as the---     buffer view’s format------ -   #VUID-vkCmdDrawIndirect-SampledType-04470# If a---     'Vulkan.Core10.Handles.ImageView' with a---     'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component---     width is accessed as a result of this command, the @SampledType@ of---     the @OpTypeImage@ operand of that instruction /must/ have a @Width@---     of 64------ -   #VUID-vkCmdDrawIndirect-SampledType-04471# If a---     'Vulkan.Core10.Handles.ImageView' with a---     'Vulkan.Core10.Enums.Format.Format' that has a component width less---     than 64-bit is accessed as a result of this command, the---     @SampledType@ of the @OpTypeImage@ operand of that instruction---     /must/ have a @Width@ of 32------ -   #VUID-vkCmdDrawIndirect-SampledType-04472# If a---     'Vulkan.Core10.Handles.BufferView' with a---     'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component---     width is accessed as a result of this command, the @SampledType@ of---     the @OpTypeImage@ operand of that instruction /must/ have a @Width@---     of 64------ -   #VUID-vkCmdDrawIndirect-SampledType-04473# If a---     'Vulkan.Core10.Handles.BufferView' with a---     'Vulkan.Core10.Enums.Format.Format' that has a component width less---     than 64-bit is accessed as a result of this command, the---     @SampledType@ of the @OpTypeImage@ operand of that instruction---     /must/ have a @Width@ of 32------ -   #VUID-vkCmdDrawIndirect-sparseImageInt64Atomics-04474# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>---     feature is not enabled, 'Vulkan.Core10.Handles.Image' objects---     created with the---     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_RESIDENCY_BIT'---     flag /must/ not be accessed by atomic instructions through an---     @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this---     command------ -   #VUID-vkCmdDrawIndirect-sparseImageInt64Atomics-04475# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>---     feature is not enabled, 'Vulkan.Core10.Handles.Buffer' objects---     created with the---     'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_SPARSE_RESIDENCY_BIT'---     flag /must/ not be accessed by atomic instructions through an---     @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this---     command------ -   #VUID-vkCmdDrawIndirect-OpImageWeightedSampleQCOM-06971# If---     @OpImageWeightedSampleQCOM@ is used to sample a---     'Vulkan.Core10.Handles.ImageView' as a result of this command, then---     the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM'------ -   #VUID-vkCmdDrawIndirect-OpImageWeightedSampleQCOM-06972# If---     @OpImageWeightedSampleQCOM@ uses a 'Vulkan.Core10.Handles.ImageView'---     as a sample weight image as a result of this command, then the image---     view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM'------ -   #VUID-vkCmdDrawIndirect-OpImageBoxFilterQCOM-06973# If---     @OpImageBoxFilterQCOM@ is used to sample a---     'Vulkan.Core10.Handles.ImageView' as a result of this command, then---     the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM'------ -   #VUID-vkCmdDrawIndirect-OpImageBlockMatchSSDQCOM-06974# If---     @OpImageBlockMatchSSDQCOM@ is used to read from an---     'Vulkan.Core10.Handles.ImageView' as a result of this command, then---     the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'------ -   #VUID-vkCmdDrawIndirect-OpImageBlockMatchSADQCOM-06975# If---     @OpImageBlockMatchSADQCOM@ is used to read from an---     'Vulkan.Core10.Handles.ImageView' as a result of this command, then---     the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'------ -   #VUID-vkCmdDrawIndirect-OpImageBlockMatchSADQCOM-06976# If---     @OpImageBlockMatchSADQCOM@ or OpImageBlockMatchSSDQCOM is used to---     read from a reference image as result of this command, then the---     specified reference coordinates /must/ not fail---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation integer texel coordinate validation>------ -   #VUID-vkCmdDrawIndirect-OpImageWeightedSampleQCOM-06977# If---     @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,---     @OpImageBlockMatchWindowSSDQCOM@, @OpImageBlockMatchWindowSADQCOM@,---     @OpImageBlockMatchGatherSSDQCOM@, @OpImageBlockMatchGatherSADQCOM@,---     @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a---     'Vulkan.Core10.Handles.Sampler' as a result of this command, then---     the sampler /must/ have been created with---     'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'------ -   #VUID-vkCmdDrawIndirect-OpImageWeightedSampleQCOM-06978# If any---     command other than @OpImageWeightedSampleQCOM@,---     @OpImageBoxFilterQCOM@, @OpImageBlockMatchWindowSSDQCOM@,---     @OpImageBlockMatchWindowSADQCOM@, @OpImageBlockMatchGatherSSDQCOM@,---     @OpImageBlockMatchGatherSADQCOM@, @OpImageBlockMatchSSDQCOM@, or---     @OpImageBlockMatchSADQCOM@ uses a 'Vulkan.Core10.Handles.Sampler' as---     a result of this command, then the sampler /must/ not have been---     created with---     'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'------ -   #VUID-vkCmdDrawIndirect-OpImageBlockMatchWindow-09215# If a---     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@---     instruction is used to read from an---     'Vulkan.Core10.Handles.ImageView' as a result of this command, then---     the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'------ -   #VUID-vkCmdDrawIndirect-OpImageBlockMatchWindow-09216# If a---     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@---     instruction is used to read from an---     'Vulkan.Core10.Handles.ImageView' as a result of this command, then---     the image view’s format /must/ be a single-component format.------ -   #VUID-vkCmdDrawIndirect-OpImageBlockMatchWindow-09217# If a---     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@---     read from a reference image as result of this command, then the---     specified reference coordinates /must/ not fail---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation integer texel coordinate validation>------ -   #VUID-vkCmdDrawIndirect-None-07288# Any shader invocation executed---     by this command /must/---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-termination terminate>------ -   #VUID-vkCmdDrawIndirect-renderPass-02684# The current render pass---     /must/ be---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-compatibility compatible>---     with the @renderPass@ member of the---     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo' structure---     specified when creating the 'Vulkan.Core10.Handles.Pipeline' bound---     to---     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'------ -   #VUID-vkCmdDrawIndirect-subpass-02685# The subpass index of the---     current render pass /must/ be equal to the @subpass@ member of the---     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo' structure---     specified when creating the 'Vulkan.Core10.Handles.Pipeline' bound---     to---     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'------ -   #VUID-vkCmdDrawIndirect-None-07748# If any shader statically---     accesses an input attachment, a valid descriptor /must/ be bound to---     the pipeline via a descriptor set------ -   #VUID-vkCmdDrawIndirect-OpTypeImage-07468# If any shader executed by---     this pipeline accesses an @OpTypeImage@ variable with a @Dim@---     operand of @SubpassData@, it /must/ be decorated with an---     @InputAttachmentIndex@ that corresponds to a valid input attachment---     in the current subpass------ -   #VUID-vkCmdDrawIndirect-None-07469# Input attachment views accessed---     in a subpass /must/ be created with the same---     'Vulkan.Core10.Enums.Format.Format' as the corresponding subpass---     definition, and be created with a 'Vulkan.Core10.Handles.ImageView'---     that is compatible with the attachment referenced by the subpass\'---     @pInputAttachments@[@InputAttachmentIndex@] in the currently bound---     'Vulkan.Core10.Handles.Framebuffer' as specified by---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#compatibility-inputattachment Fragment Input Attachment Compatibility>------ -   #VUID-vkCmdDrawIndirect-None-06537# Memory backing image---     subresources used as attachments in the current render pass /must/---     not be written in any way other than as an attachment by this---     command------ -   #VUID-vkCmdDrawIndirect-None-09000# If a color attachment is written---     by any prior command in this subpass or by the load, store, or---     resolve operations for this subpass, it is not in the---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'---     image layout, and either:------     -   the---         'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'---         is set on the currently bound pipeline or------     -   the last call to---         'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'---         included---         'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'---         and------         -   there is no currently bound graphics pipeline or------         -   the currently bound graphics pipeline was created with---             'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'---             it /must/ not be accessed in any way other than as an---             attachment by this command------ -   #VUID-vkCmdDrawIndirect-None-09001# If a depth attachment is written---     by any prior command in this subpass or by the load, store, or---     resolve operations for this subpass, it is not in the---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'---     image layout, and either:------     -   the---         'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'---         is set on the currently bound pipeline or------     -   the last call to---         'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'---         included---         'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT'---         and------         -   there is no currently bound graphics pipeline or------         -   the currently bound graphics pipeline was created with---             'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'---             it /must/ not be accessed in any way other than as an---             attachment by this command------ -   #VUID-vkCmdDrawIndirect-None-09002# If a stencil attachment is---     written by any prior command in this subpass or by the load, store,---     or resolve operations for this subpass, it is not in the---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'---     image layout, and either:------     -   the---         'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'---         is set on the currently bound pipeline or------     -   the last call to---         'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'---         included---         'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'---         and------         -   there is no currently bound graphics pipeline or------         -   the currently bound graphics pipeline was created with---             'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'---             it /must/ not be accessed in any way other than as an---             attachment by this command------ -   #VUID-vkCmdDrawIndirect-None-09003# If an attachment is written by---     any prior command in this subpass or by the load, store, or resolve---     operations for this subpass, it /must/ not be accessed in any way---     other than as an attachment, storage image, or sampled image by this---     command------ -   #VUID-vkCmdDrawIndirect-None-06539# If any previously recorded---     command in the current subpass accessed an image subresource used as---     an attachment in this subpass in any way other than as an---     attachment, this command /must/ not write to that image subresource---     as an attachment------ -   #VUID-vkCmdDrawIndirect-None-06886# If the current render pass---     instance uses a depth\/stencil attachment with a read-only layout---     for the depth aspect,---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-depth-write depth writes>---     /must/ be disabled------ -   #VUID-vkCmdDrawIndirect-None-06887# If the current render pass---     instance uses a depth\/stencil attachment with a read-only layout---     for the stencil aspect, both front and back @writeMask@ are not---     zero, and stencil test is enabled,---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-stencil all stencil ops>---     /must/ be 'Vulkan.Core10.Enums.StencilOp.STENCIL_OP_KEEP'------ -   #VUID-vkCmdDrawIndirect-None-07831# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT' dynamic---     state enabled then 'cmdSetViewport' /must/ have been called in the---     current command buffer prior to this drawing command------ -   #VUID-vkCmdDrawIndirect-None-07832# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR' dynamic---     state enabled then 'cmdSetScissor' /must/ have been called in the---     current command buffer prior to this drawing command------ -   #VUID-vkCmdDrawIndirect-None-07833# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_WIDTH' dynamic---     state enabled then 'cmdSetLineWidth' /must/ have been called in the---     current command buffer prior to this drawing command------ -   #VUID-vkCmdDrawIndirect-None-08617# If a shader object is bound to---     any graphics stage, and the most recent call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'---     in the current command buffer set @polygonMode@ to---     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE',---     'cmdSetLineWidth' /must/ have been called in the current command---     buffer prior to this drawing command------ -   #VUID-vkCmdDrawIndirect-None-08618# If a shader object is bound to---     the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'---     stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'---     in the current command buffer set @primitiveTopology@ to any line---     topology, 'cmdSetLineWidth' /must/ have been called in the current---     command buffer prior to this drawing command------ -   #VUID-vkCmdDrawIndirect-None-08619# If a shader object that outputs---     line primitives is bound to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'---     or---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'---     stage, 'cmdSetLineWidth' /must/ have been called in the current---     command buffer prior to this drawing command------ -   #VUID-vkCmdDrawIndirect-None-07834# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS' dynamic---     state enabled then 'cmdSetDepthBias' or---     'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-08620# If a shader object is bound to---     any graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable'---     in the current command buffer set @depthBiasEnable@ to---     'Vulkan.Core10.FundamentalTypes.TRUE', 'cmdSetDepthBias' or---     'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-07835# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_BLEND_CONSTANTS'---     dynamic state enabled then 'cmdSetBlendConstants' /must/ have been---     called in the current command buffer prior to this drawing command------ -   #VUID-vkCmdDrawIndirect-None-08621# If a shader object is bound to---     the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'---     stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'---     in the current command buffer set any element of---     @pColorBlendEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE', and---     the most recent call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'---     in the current command buffer set the same element of---     @pColorBlendEquations@ to a---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.ColorBlendEquationEXT'---     structure with any 'Vulkan.Core10.Enums.BlendFactor.BlendFactor'---     member with a value of---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_COLOR',---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR',---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_ALPHA', or---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA',---     'cmdSetBlendConstants' /must/ have been called in the current---     command buffer prior to this drawing command------ -   #VUID-vkCmdDrawIndirect-None-07836# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS'---     dynamic state enabled, and if the current @depthBoundsTestEnable@---     state is 'Vulkan.Core10.FundamentalTypes.TRUE', then---     'cmdSetDepthBounds' /must/ have been called in the current command---     buffer prior to this drawing command------ -   #VUID-vkCmdDrawIndirect-None-08622# If a shader object is bound to---     any graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'---     in the current command buffer set @depthBoundsTestEnable@ to---     'Vulkan.Core10.FundamentalTypes.TRUE', then 'cmdSetDepthBounds'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-07837# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_COMPARE_MASK'---     dynamic state enabled, and if the current @stencilTestEnable@ state---     is 'Vulkan.Core10.FundamentalTypes.TRUE', then---     'cmdSetStencilCompareMask' /must/ have been called in the current---     command buffer prior to this drawing command------ -   #VUID-vkCmdDrawIndirect-None-08623# If a shader object is bound to---     any graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'---     in the current command buffer set @stencilTestEnable@ to---     'Vulkan.Core10.FundamentalTypes.TRUE', 'cmdSetStencilCompareMask'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-07838# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'---     dynamic state enabled, and if the current @stencilTestEnable@ state---     is 'Vulkan.Core10.FundamentalTypes.TRUE', then---     'cmdSetStencilWriteMask' /must/ have been called in the current---     command buffer prior to this drawing command------ -   #VUID-vkCmdDrawIndirect-None-08624# If a shader object is bound to---     any graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'---     in the current command buffer set @stencilTestEnable@ to---     'Vulkan.Core10.FundamentalTypes.TRUE', 'cmdSetStencilWriteMask'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-07839# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_REFERENCE'---     dynamic state enabled, and if the current @stencilTestEnable@ state---     is 'Vulkan.Core10.FundamentalTypes.TRUE', then---     'cmdSetStencilReference' /must/ have been called in the current---     command buffer prior to this drawing command------ -   #VUID-vkCmdDrawIndirect-None-08625# If a shader object is bound to---     any graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'---     in the current command buffer set @stencilTestEnable@ to---     'Vulkan.Core10.FundamentalTypes.TRUE', 'cmdSetStencilReference'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-maxMultiviewInstanceIndex-02688# If the draw---     is recorded in a render pass instance with multiview enabled, the---     maximum instance index /must/ be less than or equal to---     'Vulkan.Core11.Promoted_From_VK_KHR_multiview.PhysicalDeviceMultiviewProperties'::@maxMultiviewInstanceIndex@------ -   #VUID-vkCmdDrawIndirect-sampleLocationsEnable-02689# If the bound---     graphics pipeline was created with---     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@---     set to 'Vulkan.Core10.FundamentalTypes.TRUE' and the current subpass---     has a depth\/stencil attachment, then that attachment /must/ have---     been created with the---     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT'---     bit set------ -   #VUID-vkCmdDrawIndirect-None-06666# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-08626# If a shader object is bound to---     any graphics stage, and the most recent call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'---     in the current command buffer set @sampleLocationsEnable@ to---     'Vulkan.Core10.FundamentalTypes.TRUE', and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-sampleLocationsPerPixel-07934# If the bound---     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'---     state enabled, then the @sampleLocationsPerPixel@ member of---     @pSampleLocationsInfo@ in the last call to---     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'---     /must/ equal the @rasterizationSamples@ member of the---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'---     structure the bound graphics pipeline has been created with------ -   #VUID-vkCmdDrawIndirect-None-07840# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic---     state enabled then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-08627# If a shader object is bound to---     any graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-07841# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRONT_FACE' dynamic---     state enabled then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-08628# If a shader object is bound to---     any graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-07843# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE'---     dynamic state enabled then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-08629# If a shader object is bound to---     any graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-07844# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'---     dynamic state enabled then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-08630# If a shader object is bound to---     any graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-07845# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP'---     dynamic state enabled then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-08631# If a shader object is bound to---     any graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'---     in the current command buffer set @depthTestEnable@ to---     'Vulkan.Core10.FundamentalTypes.TRUE', then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-07846# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE'---     dynamic state enabled then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-08632# If a shader object is bound to---     any graphics stage, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthBounds depthBounds>---     feature is enabled, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then the---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-07847# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE'---     dynamic state enabled then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-08633# If a shader object is bound to---     any graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-07848# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP' dynamic---     state enabled then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-08634# If a shader object is bound to---     any graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'---     in the current command buffer set @stencilTestEnable@ to---     'Vulkan.Core10.FundamentalTypes.TRUE', then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-viewportCount-03417# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'---     dynamic state enabled, but not the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'---     dynamic state enabled, then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'---     /must/ have been called in the current command buffer prior to this---     drawing command, and the @viewportCount@ parameter of---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'---     /must/ match the---     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@scissorCount@---     of the pipeline------ -   #VUID-vkCmdDrawIndirect-scissorCount-03418# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'---     dynamic state enabled, but not the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'---     dynamic state enabled, then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'---     /must/ have been called in the current command buffer prior to this---     drawing command, and the @scissorCount@ parameter of---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'---     /must/ match the---     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@viewportCount@---     of the pipeline------ -   #VUID-vkCmdDrawIndirect-viewportCount-03419# If the bound graphics---     pipeline state was created with both the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'---     and---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'---     dynamic states enabled then both---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'---     and---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'---     /must/ have been called in the current command buffer prior to this---     drawing command, and the @viewportCount@ parameter of---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'---     /must/ match the @scissorCount@ parameter of---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'------ -   #VUID-vkCmdDrawIndirect-None-08635# If a shader object is bound to---     any graphics stage, then both---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'---     and---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'---     /must/ have been called in the current command buffer prior to this---     drawing command, and the @viewportCount@ parameter of---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'---     /must/ match the @scissorCount@ parameter of---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'------ -   #VUID-vkCmdDrawIndirect-viewportCount-04137# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'---     dynamic state enabled, but not the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_NV'---     dynamic state enabled, then the bound graphics pipeline /must/ have---     been created with---     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.PipelineViewportWScalingStateCreateInfoNV'::@viewportCount@---     greater or equal to the @viewportCount@ parameter in the last call---     to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'------ -   #VUID-vkCmdDrawIndirect-viewportCount-04138# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'---     and---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_NV'---     dynamic states enabled then the @viewportCount@ parameter in the---     last call to---     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV'---     /must/ be greater than or equal to the @viewportCount@ parameter in---     the last call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'------ -   #VUID-vkCmdDrawIndirect-None-09232# If a shader object is bound to---     any graphics stage, and the @VK_NV_clip_space_w_scaling@ extension---     is enabled on the device, then---     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV'---     must have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-08636# If a shader object is bound to---     any graphics stage, and the @VK_NV_clip_space_w_scaling@ extension---     is enabled on the device, then the @viewportCount@ parameter in the---     last call to---     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV'---     /must/ be greater than or equal to the @viewportCount@ parameter in---     the last call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'------ -   #VUID-vkCmdDrawIndirect-viewportCount-04139# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'---     dynamic state enabled, but not the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV'---     dynamic state enabled, then the bound graphics pipeline /must/ have---     been created with---     'Vulkan.Extensions.VK_NV_shading_rate_image.PipelineViewportShadingRateImageStateCreateInfoNV'::@viewportCount@---     greater or equal to the @viewportCount@ parameter in the last call---     to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'------ -   #VUID-vkCmdDrawIndirect-viewportCount-04140# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'---     and---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV'---     dynamic states enabled then the @viewportCount@ parameter in the---     last call to---     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV'---     /must/ be greater than or equal to the @viewportCount@ parameter in---     the last call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'------ -   #VUID-vkCmdDrawIndirect-shadingRateImage-09233# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>---     feature is enabled, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set rasterizerDiscardEnable to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetCoarseSampleOrderNV'---     must have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-shadingRateImage-09234# If a shader object---     is bound to any graphics stage, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>---     feature is enabled on the device, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set rasterizerDiscardEnable to---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV'---     in the current command buffer set shadingRateImageEnable to---     'Vulkan.Core10.FundamentalTypes.TRUE', then---     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV'---     must have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-08637# If a shader object is bound to---     any graphics stage, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>---     feature is enabled on the device, then the @viewportCount@ parameter---     in the last call to---     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV'---     /must/ be greater than or equal to the @viewportCount@ parameter in---     the last call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'------ -   #VUID-vkCmdDrawIndirect-VkPipelineVieportCreateInfo-04141# If the---     bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'---     dynamic state enabled and a---     'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'---     structure chained from---     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo', then the---     bound graphics pipeline /must/ have been created with---     'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'::@viewportCount@---     greater or equal to the @viewportCount@ parameter in the last call---     to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'------ -   #VUID-vkCmdDrawIndirect-VkPipelineVieportCreateInfo-04142# If the---     bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'---     dynamic state enabled and a---     'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'---     structure chained from---     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo', then the---     bound graphics pipeline /must/ have been created with---     'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'::@exclusiveScissorCount@---     greater or equal to the @viewportCount@ parameter in the last call---     to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'------ -   #VUID-vkCmdDrawIndirect-None-07878# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV'---     dynamic state enabled then---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-07879# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV'---     dynamic state enabled then---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-exclusiveScissor-09235# If a shader object---     is bound to any graphics stage, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>---     feature is enabled, then---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'---     must have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-08638# If a shader object is bound to---     any graphics stage, and the most recent call to---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'---     in the current command buffer set any element of---     @pExclusiveScissorEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE',---     then---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-04876# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE'---     dynamic state enabled then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-08639# If a shader object is bound to---     any graphics stage, then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-04877# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE'---     dynamic state enabled then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-08640# If a shader object is bound to---     any graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-logicOp-04878# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetLogicOpEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command and the @logicOp@ /must/ be a valid---     'Vulkan.Core10.Enums.LogicOp.LogicOp' value------ -   #VUID-vkCmdDrawIndirect-None-08641# If a shader object is bound to---     the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'---     stage, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>---     feature is enabled on the device, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetLogicOpEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command and the @logicOp@ /must/ be a valid---     'Vulkan.Core10.Enums.LogicOp.LogicOp' value------ -   #VUID-vkCmdDrawIndirect-primitiveFragmentShadingRateWithMultipleViewports-04552#---     If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>---     limit is not supported, the bound graphics pipeline was created with---     the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'---     dynamic state enabled, and any of the shader stages of the bound---     graphics pipeline write to the @PrimitiveShadingRateKHR@ built-in,---     then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'---     /must/ have been called in the current command buffer prior to this---     drawing command, and the @viewportCount@ parameter of---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'---     /must/ be @1@------ -   #VUID-vkCmdDrawIndirect-primitiveFragmentShadingRateWithMultipleViewports-08642#---     If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>---     limit is not supported, and any shader object bound to a graphics---     stage writes to the @PrimitiveShadingRateKHR@ built-in, then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'---     /must/ have been called in the current command buffer prior to this---     drawing command, and the @viewportCount@ parameter of---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'---     /must/ be @1@------ -   #VUID-vkCmdDrawIndirect-blendEnable-04727# If rasterization is not---     disabled in the bound graphics pipeline, then for each color---     attachment in the subpass, if the corresponding image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     do not contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT',---     then the @blendEnable@ member of the corresponding element of the---     @pAttachments@ member of @pColorBlendState@ /must/ be---     'Vulkan.Core10.FundamentalTypes.FALSE'------ -   #VUID-vkCmdDrawIndirect-None-08643# If a shader object is bound to---     any graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then for each color---     attachment in the render pass, if the corresponding image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     do not contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT',---     then the corresponding member of @pColorBlendEnables@ in the most---     recent call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'---     in the current command buffer that affected that attachment index---     /must/ have been 'Vulkan.Core10.FundamentalTypes.FALSE'------ -   #VUID-vkCmdDrawIndirect-multisampledRenderToSingleSampled-07284# If---     rasterization is not disabled in the bound graphics pipeline, and---     none of the @VK_AMD_mixed_attachment_samples@ extension, the---     @VK_NV_framebuffer_mixed_samples@ extension, or the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>---     feature is enabled, then @rasterizationSamples@ for the currently---     bound graphics pipeline /must/ be the same as the current subpass---     color and\/or depth\/stencil attachments------ -   #VUID-vkCmdDrawIndirect-None-08644# If a shader object is bound to---     any graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', and none of the---     @VK_AMD_mixed_attachment_samples@ extension, the---     @VK_NV_framebuffer_mixed_samples@ extension, or the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>---     feature is enabled, then the most recent call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'---     in the current command buffer /must/ have set @rasterizationSamples@---     to be the same as the number of samples for the current render pass---     color and\/or depth\/stencil attachments------ -   #VUID-vkCmdDrawIndirect-None-08876# If a shader object is bound to---     any graphics stage, the current render pass instance /must/ have---     been begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'------ -   #VUID-vkCmdDrawIndirect-imageView-06172# If the current render pass---     instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     the @imageView@ member of @pDepthAttachment@ is not---     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of---     @pDepthAttachment@ is---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL',---     this command /must/ not write any values to the depth attachment------ -   #VUID-vkCmdDrawIndirect-imageView-06173# If the current render pass---     instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     the @imageView@ member of @pStencilAttachment@ is not---     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of---     @pStencilAttachment@ is---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL',---     this command /must/ not write any values to the stencil attachment------ -   #VUID-vkCmdDrawIndirect-imageView-06174# If the current render pass---     instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     the @imageView@ member of @pDepthAttachment@ is not---     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of---     @pDepthAttachment@ is---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL',---     this command /must/ not write any values to the depth attachment------ -   #VUID-vkCmdDrawIndirect-imageView-06175# If the current render pass---     instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     the @imageView@ member of @pStencilAttachment@ is not---     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of---     @pStencilAttachment@ is---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL',---     this command /must/ not write any values to the stencil attachment------ -   #VUID-vkCmdDrawIndirect-imageView-06176# If the current render pass---     instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     the @imageView@ member of @pDepthAttachment@ is not---     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of---     @pDepthAttachment@ is---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL',---     this command /must/ not write any values to the depth attachment------ -   #VUID-vkCmdDrawIndirect-imageView-06177# If the current render pass---     instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     the @imageView@ member of @pStencilAttachment@ is not---     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of---     @pStencilAttachment@ is---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL',---     this command /must/ not write any values to the stencil attachment------ -   #VUID-vkCmdDrawIndirect-viewMask-06178# If the current render pass---     instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     the currently bound graphics pipeline /must/ have been created with---     a---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@viewMask@---     equal to---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@viewMask@------ -   #VUID-vkCmdDrawIndirect-colorAttachmentCount-06179# If the current---     render pass instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     the currently bound graphics pipeline /must/ have been created with---     a---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@colorAttachmentCount@---     equal to---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@------ -   #VUID-vkCmdDrawIndirect-dynamicRenderingUnusedAttachments-08910# If---     the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>---     feature is not enabled, and the current render pass instance was---     begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'---     and---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@---     greater than @0@, then each element of the---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@---     array with a @imageView@ not equal to---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created---     with a 'Vulkan.Core10.Enums.Format.Format' equal to the---     corresponding element of---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@---     used to create the currently bound graphics pipeline------ -   #VUID-vkCmdDrawIndirect-dynamicRenderingUnusedAttachments-08911# If---     the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>---     feature is enabled, and the current render pass instance was begun---     with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'---     and---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@---     greater than @0@, then each element of the---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@---     array with a @imageView@ not equal to---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created---     with a 'Vulkan.Core10.Enums.Format.Format' equal to the---     corresponding element of---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@---     used to create the currently bound graphics pipeline, or the---     corresponding element of---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,---     if it exists, /must/ be---     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'------ -   #VUID-vkCmdDrawIndirect-dynamicRenderingUnusedAttachments-08912# If---     the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>---     feature is not enabled, and the current render pass instance was---     begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'---     and---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@---     greater than @0@, then each element of the---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@---     array with a @imageView@ equal to---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have the---     corresponding element of---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@---     used to create the currently bound pipeline equal to---     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'------ -   #VUID-vkCmdDrawIndirect-colorAttachmentCount-09362# If the current---     render pass instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     with a---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@---     equal to @1@, there is no shader object bound to any graphics stage,---     and a color attachment with a resolve mode of---     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',---     each element of the---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@---     array with a @resolveImageView@ not equal to---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created---     with an image created with a---     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@---     value equal to the---     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@---     value used to create the currently bound graphics pipeline------ -   #VUID-vkCmdDrawIndirect-None-09363# If there is no shader object---     bound to any graphics stage, the current render pass instance was---     begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'---     and a---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@---     equal to @1@, and a color attachment with a resolve mode of---     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',---     each element of the---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@---     array with a @imageView@ not equal to---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created---     with an image created with a---     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@---     value equal to the---     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@---     value used to create the currently bound graphics pipeline------ -   #VUID-vkCmdDrawIndirect-None-09364# If the current render pass---     instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     there is no shader object bound to any graphics stage, and the---     currently bound graphics pipeline was created with a non-zero---     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@---     value and with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'---     dynamic state enabled, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'---     /must/ have set the blend enable to---     'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command------ -   #VUID-vkCmdDrawIndirect-None-09365# If the current render pass---     instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     there is no shader object bound to any graphics stage, and the---     currently bound graphics pipeline was created with a non-zero---     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@---     value and with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'---     dynamic state enabled, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'---     /must/ have set @rasterizationSamples@ to---     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior---     to this drawing command------ -   #VUID-vkCmdDrawIndirect-None-09366# If there is a shader object---     bound to any graphics stage, and the current render pass includes a---     color attachment that uses the---     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'---     resolve mode, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'---     /must/ have set blend enable to---     'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command------ -   #VUID-vkCmdDrawIndirect-rasterizationSamples-09367# If there is a---     shader object bound to any graphics stage, and the current render---     pass includes a color attachment that uses the---     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'---     resolve mode, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'---     /must/ have set @rasterizationSamples@ to---     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior---     to this drawing command------ -   #VUID-vkCmdDrawIndirect-None-09368# If the current render pass---     instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     there is no shader object bound to any graphics stage, and the---     currently bound graphics pipeline was created with a non-zero---     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@---     value and with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'---     dynamic state enabled, then---     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'---     /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing---     command------ -   #VUID-vkCmdDrawIndirect-None-09369# If the current render pass---     instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     there is no shader object bound to any graphics stage, and the---     currently bound graphics pipeline was created with a non-zero---     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@---     value and with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'---     dynamic state enabled, then---     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'---     /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing---     command------ -   #VUID-vkCmdDrawIndirect-pFragmentSize-09370# If there is a shader---     object bound to any graphics stage, and the current render pass---     includes a color attachment that uses the---     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'---     resolve mode, then---     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'---     /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing---     command------ -   #VUID-vkCmdDrawIndirect-pFragmentSize-09371# If there is a shader---     object bound to any graphics stage, and the current render pass---     includes a color attachment that uses the---     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'---     resolve mode, then---     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'---     /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing---     command------ -   #VUID-vkCmdDrawIndirect-None-07749# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-08646# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>---     feature is enabled on the device, and a shader object is bound to---     the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'---     stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-attachmentCount-07750# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'---     dynamic state enabled then the @attachmentCount@ parameter of---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'---     /must/ be greater than or equal to the---     'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo'::@attachmentCount@---     of the currently bound graphics pipeline------ -   #VUID-vkCmdDrawIndirect-None-08647# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>---     feature is enabled on the device, and a shader object is bound to---     the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'---     stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then the @attachmentCount@---     parameter of most recent call to---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'---     in the current command buffer /must/ be greater than or equal to the---     number of color attachments in the current render pass instance------ -   #VUID-vkCmdDrawIndirect-None-07751# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command for each discard rectangle in---     'Vulkan.Extensions.VK_EXT_discard_rectangles.PipelineDiscardRectangleStateCreateInfoEXT'::@discardRectangleCount@------ -   #VUID-vkCmdDrawIndirect-None-07880# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-rasterizerDiscardEnable-09236# If the---     @VK_EXT_discard_rectangles@ extension is enabled, and a shader---     object is bound to any graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-08648# If the---     @VK_EXT_discard_rectangles@ extension is enabled, and a shader---     object is bound to any graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-07881# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-08649# If the---     @VK_EXT_discard_rectangles@ extension is enabled, and a shader---     object is bound to any graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'---     in the current command buffer set @discardRectangleEnable@ to---     'Vulkan.Core10.FundamentalTypes.TRUE', then---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-dynamicRenderingUnusedAttachments-08913# If---     the current render pass instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>---     feature is not enabled, and---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@---     was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@---     used to create the currently bound graphics pipeline /must/ be equal---     to 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'------ -   #VUID-vkCmdDrawIndirect-dynamicRenderingUnusedAttachments-08914# If---     current render pass instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>---     feature is not enabled, and---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@---     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@---     used to create the currently bound graphics pipeline /must/ be equal---     to the 'Vulkan.Core10.Enums.Format.Format' used to create---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@------ -   #VUID-vkCmdDrawIndirect-dynamicRenderingUnusedAttachments-08915# If---     the current render pass instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>---     feature is enabled,---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@---     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the value of---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@---     used to create the currently bound graphics pipeline was not equal---     to the 'Vulkan.Core10.Enums.Format.Format' used to create---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@,---     the value of the format /must/ be---     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'------ -   #VUID-vkCmdDrawIndirect-dynamicRenderingUnusedAttachments-08916# If---     the current render pass instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>---     feature is not enabled, and---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@---     was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@---     used to create the currently bound graphics pipeline /must/ be equal---     to 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'------ -   #VUID-vkCmdDrawIndirect-dynamicRenderingUnusedAttachments-08917# If---     current render pass instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>---     feature is not enabled, and---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@---     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@---     used to create the currently bound graphics pipeline /must/ be equal---     to the 'Vulkan.Core10.Enums.Format.Format' used to create---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@------ -   #VUID-vkCmdDrawIndirect-dynamicRenderingUnusedAttachments-08918# If---     the current render pass instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>---     feature is enabled,---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@---     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the value of---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@---     used to create the currently bound graphics pipeline was not equal---     to the 'Vulkan.Core10.Enums.Format.Format' used to create---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@,---     the value of the format /must/ be---     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'------ -   #VUID-vkCmdDrawIndirect-imageView-06183# If the current render pass---     instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'---     and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentShadingRateAttachmentInfoKHR'::@imageView@---     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the currently---     bound graphics pipeline /must/ have been created with---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'------ -   #VUID-vkCmdDrawIndirect-imageView-06184# If the current render pass---     instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'---     and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT'::@imageView@---     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the currently---     bound graphics pipeline /must/ have been created with---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT'------ -   #VUID-vkCmdDrawIndirect-colorAttachmentCount-06185# If the currently---     bound pipeline was created with a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     structure, and the current render pass instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'---     with a---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@---     parameter greater than @0@, then each element of the---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@---     array with a @imageView@ not equal to---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created---     with a sample count equal to the corresponding element of the---     @pColorAttachmentSamples@ member of---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     used to create the currently bound graphics pipeline------ -   #VUID-vkCmdDrawIndirect-pDepthAttachment-06186# If the current---     render pass instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     the currently bound pipeline was created with a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     structure, and---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@---     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the---     @depthStencilAttachmentSamples@ member of---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     used to create the currently bound graphics pipeline /must/ be equal---     to the sample count used to create---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@------ -   #VUID-vkCmdDrawIndirect-pStencilAttachment-06187# If the current---     render pass instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     the currently bound pipeline was created with a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     structure, and---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@---     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the---     @depthStencilAttachmentSamples@ member of---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     used to create the currently bound graphics pipeline /must/ be equal---     to the sample count used to create---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@------ -   #VUID-vkCmdDrawIndirect-multisampledRenderToSingleSampled-07285# If---     the currently bound pipeline was created without a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     structure, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>---     feature is not enabled, and the current render pass instance was---     begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'---     with a---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@---     parameter greater than @0@, then each element of the---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@---     array with a @imageView@ not equal to---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created---     with a sample count equal to the value of @rasterizationSamples@ for---     the currently bound graphics pipeline------ -   #VUID-vkCmdDrawIndirect-multisampledRenderToSingleSampled-07286# If---     the current render pass instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     the currently bound pipeline was created without a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     structure, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>---     feature is not enabled, and---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@---     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of---     @rasterizationSamples@ for the currently bound graphics pipeline---     /must/ be equal to the sample count used to create---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@------ -   #VUID-vkCmdDrawIndirect-multisampledRenderToSingleSampled-07287# If---     the current render pass instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     the currently bound pipeline was created without a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     structure, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>---     feature is not enabled, and---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@---     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of---     @rasterizationSamples@ for the currently bound graphics pipeline---     /must/ be equal to the sample count used to create---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@------ -   #VUID-vkCmdDrawIndirect-pNext-07935# If this command has been called---     inside a render pass instance started with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     and the @pNext@ chain of---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'---     includes a---     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'---     structure with @multisampledRenderToSingleSampledEnable@ equal to---     'Vulkan.Core10.FundamentalTypes.TRUE', then the value of---     @rasterizationSamples@ for the currently bound graphics pipeline---     /must/ be equal to---     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'::@rasterizationSamples@------ -   #VUID-vkCmdDrawIndirect-renderPass-06198# If the current render pass---     instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     the currently bound pipeline /must/ have been created with a---     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@renderPass@---     equal to 'Vulkan.Core10.APIConstants.NULL_HANDLE'------ -   #VUID-vkCmdDrawIndirect-pColorAttachments-08963# If the current---     render pass instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     there is a graphics pipeline bound with a fragment shader that---     statically writes to a color attachment, the color write mask is not---     zero, color writes are enabled, and the corresponding element of the---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments->imageView@---     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the---     corresponding element of---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@---     used to create the pipeline /must/ not be---     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'------ -   #VUID-vkCmdDrawIndirect-pDepthAttachment-08964# If the current---     render pass instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     there is a graphics pipeline bound, depth test is enabled, depth---     write is enabled, and the---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@---     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@---     used to create the pipeline /must/ not be---     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'------ -   #VUID-vkCmdDrawIndirect-pStencilAttachment-08965# If the current---     render pass instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     there is a graphics pipeline bound, stencil test is enabled and the---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@---     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@---     used to create the pipeline /must/ not be---     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'------ -   #VUID-vkCmdDrawIndirect-primitivesGeneratedQueryWithRasterizerDiscard-06708#---     If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithRasterizerDiscard primitivesGeneratedQueryWithRasterizerDiscard>---     feature is not enabled and the---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'---     query is active,---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-discard rasterization discard>---     /must/ not be enabled------ -   #VUID-vkCmdDrawIndirect-primitivesGeneratedQueryWithNonZeroStreams-06709#---     If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams primitivesGeneratedQueryWithNonZeroStreams>---     feature is not enabled and the---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'---     query is active, the bound graphics pipeline /must/ not have been---     created with a non-zero value in---     'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT'::@rasterizationStream@------ -   #VUID-vkCmdDrawIndirect-None-07619# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetTessellationDomainOriginEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-07620# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-09237# If a shader object is bound to---     the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'---     stage, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetTessellationDomainOriginEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-08650# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClamp depthClamp>---     feature is enabled, and a shader object is bound to any graphics---     stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-07621# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_POLYGON_MODE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-08651# If a shader object is bound to---     any graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-07622# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-08652# If a shader object is bound to---     any graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-07623# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-08653# If a shader object is bound to---     any graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-07624# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-alphaToCoverageEnable-08919# If the bound---     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT'---     dynamic state enabled, and @alphaToCoverageEnable@ was---     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT',---     then the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutput Fragment Output Interface>---     /must/ contain a variable for the alpha @Component@ word in---     @Location@ 0 at @Index@ 0------ -   #VUID-vkCmdDrawIndirect-None-08654# If a shader object is bound to---     any graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-alphaToCoverageEnable-08920# If a shader---     object is bound to any graphics stage, and the most recent call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'---     in the current command buffer set @alphaToCoverageEnable@ to---     'Vulkan.Core10.FundamentalTypes.TRUE', then the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutput Fragment Output Interface>---     /must/ contain a variable for the alpha @Component@ word in---     @Location@ 0 at @Index@ 0------ -   #VUID-vkCmdDrawIndirect-None-07625# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToOneEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-08655# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-alphaToOne alphaToOne>---     feature is enabled, and a shader object is bound to any graphics---     stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToOneEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-07626# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLogicOpEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-08656# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>---     feature is enabled, and a shader object is bound to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'---     stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLogicOpEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-07627# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-08657# If a shader object is bound to---     the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'---     stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-07628# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-08658# If a shader object is bound to---     any graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'---     for any attachment set that attachment’s value in---     @pColorBlendEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-07629# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-08659# If a shader object is bound to---     the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'---     stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-07630# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_STREAM_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-08660# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryStreams geometryStreams>---     feature is enabled, and a shader object is bound to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'---     stage, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-07631# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-08661# If the---     @VK_EXT_conservative_rasterization@ extension is enabled, and a---     shader object is bound to any graphics stage, and the most recent---     call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-07632# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetExtraPrimitiveOverestimationSizeEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-08662# If the---     @VK_EXT_conservative_rasterization@ extension is enabled, and a---     shader object is bound to any graphics stage, and the most recent---     call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'---     in the current command buffer set @conservativeRasterizationMode@ to---     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT',---     then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetExtraPrimitiveOverestimationSizeEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-07633# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-08663# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipEnable depthClipEnable>---     feature is enabled, and a shader object is bound to any graphics---     stage, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-07634# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-08664# If the @VK_EXT_sample_locations@---     extension is enabled, and a shader object is bound to any graphics---     stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-07635# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-07636# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetProvokingVertexModeEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-08665# If the @VK_EXT_provoking_vertex@---     extension is enabled, and a shader object is bound to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'---     stage, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetProvokingVertexModeEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-07637# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-08666# If the---     @VK_EXT_line_rasterization@ extension is enabled, and a shader---     object is bound to any graphics stage, and the most recent call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'---     in the current command buffer set @polygonMode@ to---     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-08667# If the---     @VK_EXT_line_rasterization@ extension is enabled, and a shader---     object is bound to the vertex stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'---     in the current command buffer set @primitiveTopology@ to any line---     topology, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-08668# If the---     @VK_EXT_line_rasterization@ extension is enabled, and a shader---     object that outputs line primitives is bound to the tessellation---     evaluation or geometry stage, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-07638# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-08669# If the---     @VK_EXT_line_rasterization@ extension is enabled, and a shader---     object is bound to any graphics stage, and the most recent call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'---     in the current command buffer set @polygonMode@ to---     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-08670# If the---     @VK_EXT_line_rasterization@ extension is enabled, and a shader---     object is bound to the vertex stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'---     in the current command buffer set @primitiveTopology@ to any line---     topology, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-08671# If the---     @VK_EXT_line_rasterization@ extension is enabled, and a shader---     object that outputs line primitives is bound to the tessellation---     evaluation or geometry stage, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-07849# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-08672# If the---     @VK_EXT_line_rasterization@ extension is enabled, and a shader---     object is bound to any graphics stage, and the most recent call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'---     in the current command buffer set @stippledLineEnable@ to---     'Vulkan.Core10.FundamentalTypes.TRUE', then---     'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-07639# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipNegativeOneToOneEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-08673# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipControl depthClipControl>---     feature is enabled, and a shader object is bound to any graphics---     stage, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipNegativeOneToOneEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-07640# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportWScalingEnableNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-08674# If the---     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader---     object is bound to any graphics stage, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportWScalingEnableNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-07641# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportSwizzleNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-08675# If the @VK_NV_viewport_swizzle@---     extension is enabled, and a shader object is bound to any graphics---     stage, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportSwizzleNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-07642# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-08676# If the---     @VK_NV_fragment_coverage_to_color@ extension is enabled, and a---     shader object is bound to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'---     stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-07643# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-08677# If the---     @VK_NV_fragment_coverage_to_color@ extension is enabled, and a---     shader object is bound to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'---     stage, and the most recent call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'---     in the current command buffer set @coverageToColorEnable@ to---     'Vulkan.Core10.FundamentalTypes.TRUE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-07644# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-08678# If the---     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader---     object is bound to any graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-07645# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-08679# If the---     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader---     object is bound to any graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV'---     in the current command buffer set coverageModulationMode to any---     value other than---     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.COVERAGE_MODULATION_MODE_NONE_NV',---     then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-07646# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-08680# If the---     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader---     object is bound to any graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'---     in the current command buffer set @coverageModulationTableEnable@ to---     'Vulkan.Core10.FundamentalTypes.TRUE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-07647# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-pipelineFragmentShadingRate-09238# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate>---     feature is enabled, and a shader object is bound to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'---     stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set rasterizerDiscardEnable to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'---     must have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-08681# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>---     feature is enabled, and a shader object is bound to any graphics---     stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-07648# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-08682# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-representativeFragmentTest representativeFragmentTest>---     feature is enabled, and a shader object is bound to any graphics---     stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-07649# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-08683# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-coverageReductionMode coverageReductionMode>---     feature is enabled, and a shader object is bound to any graphics---     stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-pColorBlendEnables-07470# If the bound---     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'---     state enabled and the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'---     set @pColorBlendEnables@ for any attachment to---     'Vulkan.Core10.FundamentalTypes.TRUE', then for those attachments in---     the subpass the corresponding image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT'------ -   #VUID-vkCmdDrawIndirect-rasterizationSamples-07471# If the bound---     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'---     state enabled, and the current subpass does not use any color---     and\/or depth\/stencil attachments, then the @rasterizationSamples@---     in the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'---     /must/ follow the rules for a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-noattachments zero-attachment subpass>------ -   #VUID-vkCmdDrawIndirect-samples-07472# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT'---     state enabled and the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'---     state disabled, then the @samples@ parameter in the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'---     /must/ be greater or equal to the---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@---     parameter used to create the bound graphics pipeline------ -   #VUID-vkCmdDrawIndirect-samples-07473# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT'---     state and---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'---     states enabled, then the @samples@ parameter in the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'---     /must/ be greater or equal to the @rasterizationSamples@ parameter---     in the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'------ -   #VUID-vkCmdDrawIndirect-rasterizationSamples-07474# If the bound---     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'---     state enabled, and neither the @VK_AMD_mixed_attachment_samples@ nor---     the @VK_NV_framebuffer_mixed_samples@ extensions are enabled, then---     the @rasterizationSamples@ in the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'---     /must/ be the same as the current subpass color and\/or---     depth\/stencil attachments------ -   #VUID-vkCmdDrawIndirect-None-09211# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'---     state enabled, or a shader object is bound to any graphics stage,---     and the current render pass instance includes a---     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'---     structure with @multisampledRenderToSingleSampledEnable@ equal to---     'Vulkan.Core10.FundamentalTypes.TRUE', then the---     @rasterizationSamples@ in the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'---     /must/ be the same as the @rasterizationSamples@ member of that---     structure------ -   #VUID-vkCmdDrawIndirect-firstAttachment-07476# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command, and the attachments specified by the---     @firstAttachment@ and @attachmentCount@ parameters of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'---     calls /must/ specify an enable for all active color attachments in---     the current subpass------ -   #VUID-vkCmdDrawIndirect-firstAttachment-07477# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command, and the attachments specified by the---     @firstAttachment@ and @attachmentCount@ parameters of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'---     calls /must/ specify the blend equations for all active color---     attachments in the current subpass where blending is enabled------ -   #VUID-vkCmdDrawIndirect-firstAttachment-07478# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command, and the attachments specified by the---     @firstAttachment@ and @attachmentCount@ parameters of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'---     calls /must/ specify the color write mask for all active color---     attachments in the current subpass------ -   #VUID-vkCmdDrawIndirect-firstAttachment-07479# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command, and the attachments specified by the---     @firstAttachment@ and @attachmentCount@ parameters of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'---     calls /must/ specify the advanced blend equations for all active---     color attachments in the current subpass where blending is enabled------ -   #VUID-vkCmdDrawIndirect-advancedBlendMaxColorAttachments-07480# If---     the bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT'---     and---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'---     dynamic states enabled and the last calls to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'---     and---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'---     have enabled advanced blending, then the number of active color---     attachments in the current subpass /must/ not exceed---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-advancedBlendMaxColorAttachments advancedBlendMaxColorAttachments>------ -   #VUID-vkCmdDrawIndirect-primitivesGeneratedQueryWithNonZeroStreams-07481#---     If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams primitivesGeneratedQueryWithNonZeroStreams>---     feature is not enabled and the---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'---     query is active, and the bound graphics pipeline was created with---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_STREAM_EXT'---     state enabled, the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT'---     /must/ have set the @rasterizationStream@ to zero------ -   #VUID-vkCmdDrawIndirect-sampleLocationsPerPixel-07482# If the bound---     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'---     state enabled and the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'---     state disabled, then the @sampleLocationsPerPixel@ member of---     @pSampleLocationsInfo@ in the last call to---     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'---     /must/ equal the @rasterizationSamples@ member of the---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'---     structure the bound graphics pipeline has been created with------ -   #VUID-vkCmdDrawIndirect-sampleLocationsPerPixel-07483# If the bound---     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'---     state enabled and the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'---     state enabled, then the @sampleLocationsPerPixel@ member of---     @pSampleLocationsInfo@ in the last call to---     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'---     /must/ equal the @rasterizationSamples@ parameter of the last call---     to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'------ -   #VUID-vkCmdDrawIndirect-sampleLocationsEnable-07484# If the bound---     graphics pipeline was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'---     state enabled, and @sampleLocationsEnable@ was---     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',---     and the current subpass has a depth\/stencil attachment, then that---     attachment /must/ have been created with the---     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT'---     bit set------ -   #VUID-vkCmdDrawIndirect-sampleLocationsEnable-07485# If the bound---     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'---     state enabled and the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'---     state enabled, and if @sampleLocationsEnable@ was---     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',---     then the @sampleLocationsInfo.sampleLocationGridSize.width@ in the---     last call to---     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'---     /must/ evenly divide---     'Vulkan.Extensions.VK_EXT_sample_locations.MultisamplePropertiesEXT'::@sampleLocationGridSize.width@---     as returned by---     'Vulkan.Extensions.VK_EXT_sample_locations.getPhysicalDeviceMultisamplePropertiesEXT'---     with a @samples@ parameter equaling @rasterizationSamples@------ -   #VUID-vkCmdDrawIndirect-sampleLocationsEnable-07486# If the bound---     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'---     state enabled and the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'---     state enabled, and if @sampleLocationsEnable@ was---     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',---     then the @sampleLocationsInfo.sampleLocationGridSize.height@ in the---     last call to---     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'---     /must/ evenly divide---     'Vulkan.Extensions.VK_EXT_sample_locations.MultisamplePropertiesEXT'::@sampleLocationGridSize.height@---     as returned by---     'Vulkan.Extensions.VK_EXT_sample_locations.getPhysicalDeviceMultisamplePropertiesEXT'---     with a @samples@ parameter equaling @rasterizationSamples@------ -   #VUID-vkCmdDrawIndirect-sampleLocationsEnable-07487# If the bound---     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'---     state enabled, and if @sampleLocationsEnable@ was---     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',---     the fragment shader code /must/ not statically use the extended---     instruction @InterpolateAtSample@------ -   #VUID-vkCmdDrawIndirect-sampleLocationsEnable-07936# If the bound---     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'---     state disabled and the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'---     state enabled, the @sampleLocationsEnable@ member of a---     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@---     in the bound graphics pipeline is---     'Vulkan.Core10.FundamentalTypes.TRUE' or---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'---     state enabled, then,---     @sampleLocationsInfo.sampleLocationGridSize.width@ /must/ evenly---     divide---     'Vulkan.Extensions.VK_EXT_sample_locations.MultisamplePropertiesEXT'::@sampleLocationGridSize.width@---     as returned by---     'Vulkan.Extensions.VK_EXT_sample_locations.getPhysicalDeviceMultisamplePropertiesEXT'---     with a @samples@ parameter equaling the value of---     @rasterizationSamples@ in the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'------ -   #VUID-vkCmdDrawIndirect-sampleLocationsEnable-07937# If the bound---     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'---     state disabled and the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'---     state enabled, the @sampleLocationsEnable@ member of a---     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@---     in the bound graphics pipeline is---     'Vulkan.Core10.FundamentalTypes.TRUE' or---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'---     state enabled, then,---     @sampleLocationsInfo.sampleLocationGridSize.height@ /must/ evenly---     divide---     'Vulkan.Extensions.VK_EXT_sample_locations.MultisamplePropertiesEXT'::@sampleLocationGridSize.height@---     as returned by---     'Vulkan.Extensions.VK_EXT_sample_locations.getPhysicalDeviceMultisamplePropertiesEXT'---     with a @samples@ parameter equaling the value of---     @rasterizationSamples@ in the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'------ -   #VUID-vkCmdDrawIndirect-sampleLocationsEnable-07938# If the bound---     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'---     state disabled and the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'---     state enabled, the @sampleLocationsEnable@ member of a---     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@---     in the bound graphics pipeline is---     'Vulkan.Core10.FundamentalTypes.TRUE' or---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'---     state enabled, then, @sampleLocationsInfo.sampleLocationsPerPixel@---     /must/ equal @rasterizationSamples@ in the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'------ -   #VUID-vkCmdDrawIndirect-coverageModulationTableEnable-07488# If the---     bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV'---     state enabled and the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'---     set @coverageModulationTableEnable@ to---     'Vulkan.Core10.FundamentalTypes.TRUE', then the---     @coverageModulationTableCount@ parameter in the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV'---     /must/ equal the current @rasterizationSamples@ divided by the---     number of color samples in the current subpass------ -   #VUID-vkCmdDrawIndirect-rasterizationSamples-07489# If the---     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and if---     current subpass has a depth\/stencil attachment and depth test,---     stencil test, or depth bounds test are enabled in the currently---     bound pipeline state, then the current @rasterizationSamples@ /must/---     be the same as the sample count of the depth\/stencil attachment------ -   #VUID-vkCmdDrawIndirect-coverageToColorEnable-07490# If the bound---     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV'---     state enabled and the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'---     set the @coverageToColorEnable@ to---     'Vulkan.Core10.FundamentalTypes.TRUE', then the current subpass---     /must/ have a color attachment at the location selected by the last---     call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV'---     @coverageToColorLocation@, with a---     'Vulkan.Core10.Enums.Format.Format' of---     'Vulkan.Core10.Enums.Format.FORMAT_R8_UINT',---     'Vulkan.Core10.Enums.Format.FORMAT_R8_SINT',---     'Vulkan.Core10.Enums.Format.FORMAT_R16_UINT',---     'Vulkan.Core10.Enums.Format.FORMAT_R16_SINT',---     'Vulkan.Core10.Enums.Format.FORMAT_R32_UINT', or---     'Vulkan.Core10.Enums.Format.FORMAT_R32_SINT'------ -   #VUID-vkCmdDrawIndirect-coverageReductionMode-07491# If this---     @VK_NV_coverage_reduction_mode@ extension is enabled, the bound---     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV'---     and---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'---     states enabled, the current coverage reduction mode---     @coverageReductionMode@, then the current @rasterizationSamples@,---     and the sample counts for the color and depth\/stencil attachments---     (if the subpass has them) /must/ be a valid combination returned by---     'Vulkan.Extensions.VK_NV_coverage_reduction_mode.getPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV'------ -   #VUID-vkCmdDrawIndirect-viewportCount-07492# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'---     dynamic state enabled, but not the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV'---     dynamic state enabled, then the bound graphics pipeline /must/ have---     been created with---     'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'::@viewportCount@---     greater or equal to the @viewportCount@ parameter in the last call---     to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'------ -   #VUID-vkCmdDrawIndirect-viewportCount-07493# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'---     and---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV'---     dynamic states enabled then the @viewportCount@ parameter in the---     last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportSwizzleNV'---     /must/ be greater than or equal to the @viewportCount@ parameter in---     the last call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'------ -   #VUID-vkCmdDrawIndirect-rasterizationSamples-07494# If the---     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and if the---     current subpass has any color attachments and @rasterizationSamples@---     of the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'---     is greater than the number of color samples, then the pipeline---     @sampleShadingEnable@ /must/ be---     'Vulkan.Core10.FundamentalTypes.FALSE'------ -   #VUID-vkCmdDrawIndirect-stippledLineEnable-07495# If the bound---     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'---     or---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'---     dynamic states enabled, and if the current @stippledLineEnable@---     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current---     @lineRasterizationMode@ state is---     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_EXT',---     then the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>---     feature /must/ be enabled------ -   #VUID-vkCmdDrawIndirect-stippledLineEnable-07496# If the bound---     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'---     or---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'---     dynamic states enabled, and if the current @stippledLineEnable@---     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current---     @lineRasterizationMode@ state is---     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_BRESENHAM_EXT',---     then the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>---     feature /must/ be enabled------ -   #VUID-vkCmdDrawIndirect-stippledLineEnable-07497# If the bound---     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'---     or---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'---     dynamic states enabled, and if the current @stippledLineEnable@---     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current---     @lineRasterizationMode@ state is---     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT',---     then the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>---     feature /must/ be enabled------ -   #VUID-vkCmdDrawIndirect-stippledLineEnable-07498# If the bound---     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'---     or---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'---     dynamic states enabled, and if the current @stippledLineEnable@---     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current---     @lineRasterizationMode@ state is---     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_DEFAULT_EXT',---     then the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>---     feature /must/ be enabled and---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@strictLines@---     /must/ be 'Vulkan.Core10.FundamentalTypes.TRUE'------ -   #VUID-vkCmdDrawIndirect-conservativePointAndLineRasterization-07499#---     If the bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT'---     dynamic state enabled,---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-conservativePointAndLineRasterization conservativePointAndLineRasterization>---     is not supported, and the effective primitive topology output by the---     last pre-rasterization shader stage is a line or point, then the---     @conservativeRasterizationMode@ set by the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'---     /must/ be---     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT'------ -   #VUID-vkCmdDrawIndirect-stage-07073# If the currently bound pipeline---     was created with the---     'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@---     member of an element of---     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pStages@ set---     to---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT',---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT',---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'---     or---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT',---     then---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-mesh-shader Mesh Shader Queries>---     /must/ not be active------ -   #VUID-vkCmdDrawIndirect-None-08877# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'---     dynamic state---     'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-07850# If dynamic state was inherited---     from---     'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV',---     it /must/ be set in the current command buffer prior to this drawing---     command------ -   #VUID-vkCmdDrawIndirect-None-08684# If there is no bound graphics---     pipeline, 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT'---     /must/ have been called in the current command buffer with @pStages@---     with an element of---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'------ -   #VUID-vkCmdDrawIndirect-None-08685# If there is no bound graphics---     pipeline, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>---     feature is enabled,---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/---     have been called in the current command buffer with @pStages@ with---     an element of---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT'------ -   #VUID-vkCmdDrawIndirect-None-08686# If there is no bound graphics---     pipeline, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>---     feature is enabled,---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/---     have been called in the current command buffer with @pStages@ with---     an element of---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'------ -   #VUID-vkCmdDrawIndirect-None-08687# If there is no bound graphics---     pipeline, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader>---     feature is enabled,---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/---     have been called in the current command buffer with @pStages@ with---     an element of---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'------ -   #VUID-vkCmdDrawIndirect-None-08688# If there is no bound graphics---     pipeline, 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT'---     /must/ have been called in the current command buffer with @pStages@---     with an element of---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'------ -   #VUID-vkCmdDrawIndirect-None-08689# If there is no bound graphics---     pipeline, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>---     feature is enabled,---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/---     have been called in the current command buffer with @pStages@ with---     an element of---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'------ -   #VUID-vkCmdDrawIndirect-None-08690# If there is no bound graphics---     pipeline, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>---     feature is enabled,---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/---     have been called in the current command buffer with @pStages@ with---     an element of---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'------ -   #VUID-vkCmdDrawIndirect-None-08693# If there is no bound graphics---     pipeline, and at least one of the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>---     and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>---     features is enabled, one of the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' or---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'---     stages /must/ have a valid 'Vulkan.Extensions.Handles.ShaderEXT'---     bound, and the other /must/ have no---     'Vulkan.Extensions.Handles.ShaderEXT' bound------ -   #VUID-vkCmdDrawIndirect-None-08694# If there is no bound graphics---     pipeline, and both the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>---     and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>---     features are enabled, and a valid---     'Vulkan.Extensions.Handles.ShaderEXT' is bound the to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'---     stage, and that 'Vulkan.Extensions.Handles.ShaderEXT' was created---     without the---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_NO_TASK_SHADER_BIT_EXT'---     flag, a valid 'Vulkan.Extensions.Handles.ShaderEXT' /must/ be bound---     to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'---     stage------ -   #VUID-vkCmdDrawIndirect-None-08695# If there is no bound graphics---     pipeline, and both the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>---     and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>---     features are enabled, and a valid---     'Vulkan.Extensions.Handles.ShaderEXT' is bound the to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'---     stage, and that 'Vulkan.Extensions.Handles.ShaderEXT' was created---     with the---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_NO_TASK_SHADER_BIT_EXT'---     flag, there /must/ be no 'Vulkan.Extensions.Handles.ShaderEXT' bound---     to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'---     stage------ -   #VUID-vkCmdDrawIndirect-None-08696# If there is no bound graphics---     pipeline, and a valid 'Vulkan.Extensions.Handles.ShaderEXT' is bound---     to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'---     stage, there /must/ be no 'Vulkan.Extensions.Handles.ShaderEXT'---     bound to either the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'---     stage or the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'---     stage------ -   #VUID-vkCmdDrawIndirect-None-08698# If any graphics shader is bound---     which was created with the---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'---     flag, then all shaders created with the---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'---     flag in the same---     'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call---     /must/ also be bound------ -   #VUID-vkCmdDrawIndirect-None-08699# If any graphics shader is bound---     which was created with the---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'---     flag, any stages in between stages whose shaders which did not---     create a shader with the---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'---     flag as part of the same---     'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call---     /must/ not have any 'Vulkan.Extensions.Handles.ShaderEXT' bound------ -   #VUID-vkCmdDrawIndirect-None-08878# All bound graphics shader---     objects /must/ have been created with identical or identically---     defined push constant ranges------ -   #VUID-vkCmdDrawIndirect-None-08879# All bound graphics shader---     objects /must/ have been created with identical or identically---     defined arrays of descriptor set layouts------ -   #VUID-vkCmdDrawIndirect-colorAttachmentCount-09372# If the current---     render pass instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'---     and a---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@---     equal to @1@, a color attachment with a resolve mode of---     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',---     and a fragment shader is bound, it /must/ not declare the---     @DepthReplacing@ or @StencilRefReplacingEXT@ execution modes------ -   #VUID-vkCmdDrawIndirect-None-08880# If a shader object is bound to---     the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'---     stage and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFeedbackLoopDynamicState attachmentFeedbackLoopDynamicState>---     feature is enabled on the device, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE'---     'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-pDynamicStates-08715# If the bound graphics---     pipeline state includes a fragment shader stage, was created with---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'---     set in---     'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@,---     and the fragment shader declares the @EarlyFragmentTests@ execution---     mode and uses @OpDepthAttachmentReadEXT@, the @depthWriteEnable@---     parameter in the last call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'---     /must/ be 'Vulkan.Core10.FundamentalTypes.FALSE'------ -   #VUID-vkCmdDrawIndirect-pDynamicStates-08716# If the bound graphics---     pipeline state includes a fragment shader stage, was created with---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'---     set in---     'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@,---     and the fragment shader declares the @EarlyFragmentTests@ execution---     mode and uses @OpStencilAttachmentReadEXT@, the @writeMask@---     parameter in the last call to 'cmdSetStencilWriteMask' /must/ be @0@------ -   #VUID-vkCmdDrawIndirect-None-09116# If a shader object is bound to---     any graphics stage or the currently bound graphics pipeline was---     created with---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT',---     and the format of any color attachment is---     'Vulkan.Core10.Enums.Format.FORMAT_E5B9G9R9_UFLOAT_PACK32', the---     corresponding element of the @pColorWriteMasks@ parameter of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'---     /must/ either include all of---     'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_R_BIT',---     'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_G_BIT',---     and---     'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_B_BIT',---     or none of them------ -   #VUID-vkCmdDrawIndirect-maxFragmentDualSrcAttachments-09239# If---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-blending blending>---     is enabled for any attachment where either the source or destination---     blend factors for that attachment---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-dsb use the secondary color input>,---     the maximum value of @Location@ for any output attachment---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-staticuse statically used>---     in the @Fragment@ @Execution@ @Model@ executed by this command---     /must/ be less than---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxFragmentDualSrcAttachments maxFragmentDualSrcAttachments>------ -   #VUID-vkCmdDrawIndirect-None-04007# All vertex input bindings---     accessed via vertex input variables declared in the vertex shader---     entry point’s interface /must/ have either valid or---     'Vulkan.Core10.APIConstants.NULL_HANDLE' buffers bound------ -   #VUID-vkCmdDrawIndirect-None-04008# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>---     feature is not enabled, all vertex input bindings accessed via---     vertex input variables declared in the vertex shader entry point’s---     interface /must/ not be 'Vulkan.Core10.APIConstants.NULL_HANDLE'------ -   #VUID-vkCmdDrawIndirect-None-02721# For a given vertex buffer---     binding, any attribute data fetched /must/ be entirely contained---     within the corresponding vertex buffer binding, as described in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input ???>------ -   #VUID-vkCmdDrawIndirect-None-07842# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY'---     dynamic state enabled then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-dynamicPrimitiveTopologyUnrestricted-07500#---     If the bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY'---     dynamic state enabled and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-dynamicPrimitiveTopologyUnrestricted dynamicPrimitiveTopologyUnrestricted>---     is 'Vulkan.Core10.FundamentalTypes.FALSE', then the---     @primitiveTopology@ parameter of---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'---     /must/ be of the same---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-primitive-topology-class topology class>---     as the pipeline---     'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@---     state------ -   #VUID-vkCmdDrawIndirect-None-04912# If the bound graphics pipeline---     was created with both the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'---     and---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'---     dynamic states enabled, then---     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'---     /must/ have been called in the current command buffer prior to this---     draw command------ -   #VUID-vkCmdDrawIndirect-pStrides-04913# If the bound graphics---     pipeline was created with the---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'---     dynamic state enabled, but not the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'---     dynamic state enabled, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'---     /must/ have been called in the current command buffer prior to this---     draw command, and the @pStrides@ parameter of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'---     /must/ not be @NULL@------ -   #VUID-vkCmdDrawIndirect-None-08881# If a shader object is bound to---     the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'---     stage, then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-04914# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'---     dynamic state enabled, then---     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'---     /must/ have been called in the current command buffer prior to this---     draw command------ -   #VUID-vkCmdDrawIndirect-Input-07939# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'---     dynamic state enabled, then all variables with the @Input@ storage---     class decorated with @Location@ in the @Vertex@ @Execution@ @Model@---     @OpEntryPoint@ /must/ contain a location in---     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@location@------ -   #VUID-vkCmdDrawIndirect-Input-08734# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'---     dynamic state enabled, then the numeric type associated with all---     @Input@ variables of the corresponding @Location@ in the @Vertex@---     @Execution@ @Model@ @OpEntryPoint@ /must/ be the same as---     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@------ -   #VUID-vkCmdDrawIndirect-format-08936# If there is a shader object---     bound to a graphics stage or the currently bound graphics pipeline---     was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'---     dynamic state enabled, and---     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@---     has a 64-bit component, then the scalar width associated with all---     @Input@ variables of the corresponding @Location@ in the @Vertex@---     @Execution@ @Model@ @OpEntryPoint@ /must/ be 64-bit------ -   #VUID-vkCmdDrawIndirect-format-08937# If there is a shader object---     bound to a graphics stage or the currently bound graphics pipeline---     was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'---     dynamic state enabled, and the scalar width associated with a---     @Location@ decorated @Input@ variable in the @Vertex@ @Execution@---     @Model@ @OpEntryPoint@ is 64-bit, then the corresponding---     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@---     /must/ have a 64-bit component------ -   #VUID-vkCmdDrawIndirect-None-09203# If there is a shader object---     bound to a graphics stage or the currently bound graphics pipeline---     was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'---     dynamic state enabled, and---     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@---     has a 64-bit component, then all @Input@ variables at the---     corresponding @Location@ in the @Vertex@ @Execution@ @Model@---     @OpEntryPoint@ /must/ not use components that are not present in the---     format------ -   #VUID-vkCmdDrawIndirect-None-08882# If a shader object is bound to---     the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'---     stage, then---     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-04875# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-08883# If a shader object is bound to---     the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'---     stage, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-None-04879# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE'---     dynamic state enabled then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnable'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-rasterizerDiscardEnable-08884# If a shader---     object is bound to any graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE',---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnable'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirect-stage-06481# The bound graphics pipeline---     /must/ not have been created with the---     'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@---     member of an element of---     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pStages@ set---     to---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'---     or---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'------ -   #VUID-vkCmdDrawIndirect-None-08885# There /must/ be no shader object---     bound to either of the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'---     or---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'---     stages------ -   #VUID-vkCmdDrawIndirect-buffer-02708# If @buffer@ is non-sparse then---     it /must/ be bound completely and contiguously to a single---     'Vulkan.Core10.Handles.DeviceMemory' object------ -   #VUID-vkCmdDrawIndirect-buffer-02709# @buffer@ /must/ have been---     created with the---     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDIRECT_BUFFER_BIT'---     bit set------ -   #VUID-vkCmdDrawIndirect-offset-02710# @offset@ /must/ be a multiple---     of @4@------ -   #VUID-vkCmdDrawIndirect-commandBuffer-02711# @commandBuffer@ /must/---     not be a protected command buffer------ -   #VUID-vkCmdDrawIndirect-drawCount-02718# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multiDrawIndirect multiDrawIndirect>---     feature is not enabled, @drawCount@ /must/ be @0@ or @1@------ -   #VUID-vkCmdDrawIndirect-drawCount-02719# @drawCount@ /must/ be less---     than or equal to---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxDrawIndirectCount@------ -   #VUID-vkCmdDrawIndirect-drawCount-00476# If @drawCount@ is greater---     than @1@, @stride@ /must/ be a multiple of @4@ and /must/ be greater---     than or equal to---     @sizeof@('Vulkan.Core10.OtherTypes.DrawIndirectCommand')------ -   #VUID-vkCmdDrawIndirect-drawCount-00487# If @drawCount@ is equal to---     @1@, (@offset@ +---     @sizeof@('Vulkan.Core10.OtherTypes.DrawIndirectCommand')) /must/ be---     less than or equal to the size of @buffer@------ -   #VUID-vkCmdDrawIndirect-drawCount-00488# If @drawCount@ is greater---     than @1@, (@stride@ × (@drawCount@ - 1) + @offset@ +---     @sizeof@('Vulkan.Core10.OtherTypes.DrawIndirectCommand')) /must/ be---     less than or equal to the size of @buffer@------ == Valid Usage (Implicit)------ -   #VUID-vkCmdDrawIndirect-commandBuffer-parameter# @commandBuffer@---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdDrawIndirect-buffer-parameter# @buffer@ /must/ be a valid---     'Vulkan.Core10.Handles.Buffer' handle------ -   #VUID-vkCmdDrawIndirect-commandBuffer-recording# @commandBuffer@---     /must/ be in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>------ -   #VUID-vkCmdDrawIndirect-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics operations------ -   #VUID-vkCmdDrawIndirect-renderpass# This command /must/ only be---     called inside of a render pass instance------ -   #VUID-vkCmdDrawIndirect-videocoding# This command /must/ only be---     called outside of a video coding scope------ -   #VUID-vkCmdDrawIndirect-commonparent# Both of @buffer@, and---     @commandBuffer@ /must/ have been created, allocated, or retrieved---     from the same 'Vulkan.Core10.Handles.Device'------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |--- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+--- | Primary                                                                                                                    | Inside                                                                                                                 | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',--- 'Vulkan.Core10.FundamentalTypes.DeviceSize'-cmdDrawIndirect :: forall io-                 . (MonadIO io)-                => -- | @commandBuffer@ is the command buffer into which the command is-                   -- recorded.-                   CommandBuffer-                -> -- | @buffer@ is the buffer containing draw parameters.-                   Buffer-                -> -- | @offset@ is the byte offset into @buffer@ where parameters begin.-                   ("offset" ::: DeviceSize)-                -> -- | @drawCount@ is the number of draws to execute, and /can/ be zero.-                   ("drawCount" ::: Word32)-                -> -- | @stride@ is the byte stride between successive sets of draw parameters.-                   ("stride" ::: Word32)-                -> io ()-cmdDrawIndirect commandBuffer buffer offset drawCount stride = liftIO $ do-  let vkCmdDrawIndirectPtr = pVkCmdDrawIndirect (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  unless (vkCmdDrawIndirectPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDrawIndirect is null" Nothing Nothing-  let vkCmdDrawIndirect' = mkVkCmdDrawIndirect vkCmdDrawIndirectPtr-  traceAroundEvent "vkCmdDrawIndirect" (vkCmdDrawIndirect'-                                          (commandBufferHandle (commandBuffer))-                                          (buffer)-                                          (offset)-                                          (drawCount)-                                          (stride))-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdDrawIndexedIndirect-  :: FunPtr (Ptr CommandBuffer_T -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO ()---- | vkCmdDrawIndexedIndirect - Draw primitives with indirect parameters and--- indexed vertices------ = Description------ 'cmdDrawIndexedIndirect' behaves similarly to 'cmdDrawIndexed' except--- that the parameters are read by the device from a buffer during--- execution. @drawCount@ draws are executed by the command, with--- parameters taken from @buffer@ starting at @offset@ and increasing by--- @stride@ bytes for each successive draw. The parameters of each draw are--- encoded in an array of--- 'Vulkan.Core10.OtherTypes.DrawIndexedIndirectCommand' structures. If--- @drawCount@ is less than or equal to one, @stride@ is ignored.------ == Valid Usage------ -   #VUID-vkCmdDrawIndexedIndirect-magFilter-04553# If a---     'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or---     @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and---     @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE' is---     used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of---     this command, then the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'------ -   #VUID-vkCmdDrawIndexedIndirect-mipmapMode-04770# If a---     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to---     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'---     and @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE'---     is used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of---     this command, then the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'------ -   #VUID-vkCmdDrawIndexedIndirect-None-06479# If a---     'Vulkan.Core10.Handles.ImageView' is sampled with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-depth-compare-operation depth comparison>,---     the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT'------ -   #VUID-vkCmdDrawIndexedIndirect-None-02691# If a---     'Vulkan.Core10.Handles.ImageView' is accessed using atomic---     operations as a result of this command, then the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT'------ -   #VUID-vkCmdDrawIndexedIndirect-None-07888# If a---     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER'---     descriptor is accessed using atomic operations as a result of this---     command, then the storage texel buffer’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-buffer-view-format-features format features>---     /must/ contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT'------ -   #VUID-vkCmdDrawIndexedIndirect-None-02692# If a---     'Vulkan.Core10.Handles.ImageView' is sampled with---     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this---     command, then the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'------ -   #VUID-vkCmdDrawIndexedIndirect-None-02693# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_filter_cubic VK_EXT_filter_cubic>---     extension is not enabled and any 'Vulkan.Core10.Handles.ImageView'---     is sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a---     result of this command, it /must/ not have a---     'Vulkan.Core10.Enums.ImageViewType.ImageViewType' of---     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D',---     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE', or---     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY'------ -   #VUID-vkCmdDrawIndexedIndirect-filterCubic-02694# Any---     'Vulkan.Core10.Handles.ImageView' being sampled with---     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this---     command /must/ have a---     'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that---     supports cubic filtering, as specified by---     'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubic@---     returned by---     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'------ -   #VUID-vkCmdDrawIndexedIndirect-filterCubicMinmax-02695# Any---     'Vulkan.Core10.Handles.ImageView' being sampled with---     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' with a reduction mode---     of either---     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'---     or---     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'---     as a result of this command /must/ have a---     'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that---     supports cubic filtering together with minmax filtering, as---     specified by---     'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubicMinmax@---     returned by---     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'------ -   #VUID-vkCmdDrawIndexedIndirect-cubicRangeClamp-09212# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-range-clamp cubicRangeClamp>---     feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView'---     being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as---     a result of this command------     [/must/ not have a 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo']---         @reductionMode@ equal to---         'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM'------ -   #VUID-vkCmdDrawIndexedIndirect-reductionMode-09213# Any---     'Vulkan.Core10.Handles.ImageView' being sampled with a---     'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'::@reductionMode@---     equal to---     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM'---     as a result of this command /must/ sample with---     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT'------ -   #VUID-vkCmdDrawIndexedIndirect-selectableCubicWeights-09214# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-weight-selection selectableCubicWeights>---     feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView'---     being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as---     a result of this command /must/ have---     'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.SamplerCubicWeightsCreateInfoQCOM'::@cubicWeights@---     equal to---     'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM'------ -   #VUID-vkCmdDrawIndexedIndirect-flags-02696# Any---     'Vulkan.Core10.Handles.Image' created with a---     'Vulkan.Core10.Image.ImageCreateInfo'::@flags@ containing---     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_CORNER_SAMPLED_BIT_NV'---     sampled as a result of this command /must/ only be sampled using a---     'Vulkan.Core10.Enums.SamplerAddressMode.SamplerAddressMode' of---     'Vulkan.Core10.Enums.SamplerAddressMode.SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE'------ -   #VUID-vkCmdDrawIndexedIndirect-OpTypeImage-07027# For any---     'Vulkan.Core10.Handles.ImageView' being written as a storage image---     where the image format field of the @OpTypeImage@ is @Unknown@, the---     view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'------ -   #VUID-vkCmdDrawIndexedIndirect-OpTypeImage-07028# For any---     'Vulkan.Core10.Handles.ImageView' being read as a storage image---     where the image format field of the @OpTypeImage@ is @Unknown@, the---     view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT'------ -   #VUID-vkCmdDrawIndexedIndirect-OpTypeImage-07029# For any---     'Vulkan.Core10.Handles.BufferView' being written as a storage texel---     buffer where the image format field of the @OpTypeImage@ is---     @Unknown@, the view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>---     /must/ contain---     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'------ -   #VUID-vkCmdDrawIndexedIndirect-OpTypeImage-07030# Any---     'Vulkan.Core10.Handles.BufferView' being read as a storage texel---     buffer where the image format field of the @OpTypeImage@ is---     @Unknown@ then the view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>---     /must/ contain---     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT'------ -   #VUID-vkCmdDrawIndexedIndirect-None-08600# For each set /n/ that is---     statically used by---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,---     a descriptor set /must/ have been bound to /n/ at the same pipeline---     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is---     compatible for set /n/, with the---     'Vulkan.Core10.Handles.PipelineLayout' or---     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>------ -   #VUID-vkCmdDrawIndexedIndirect-None-08601# For each push constant---     that is statically used by---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,---     a push constant value /must/ have been set for the same pipeline---     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is---     compatible for push constants, with the---     'Vulkan.Core10.Handles.PipelineLayout' or---     'Vulkan.Core10.Handles.DescriptorSetLayout' and---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>------ -   #VUID-vkCmdDrawIndexedIndirect-maintenance4-08602# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance4 maintenance4>---     feature is not enabled, then for each push constant that is---     statically used by---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,---     a push constant value /must/ have been set for the same pipeline---     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is---     compatible for push constants, with the---     'Vulkan.Core10.Handles.PipelineLayout' or---     'Vulkan.Core10.Handles.DescriptorSetLayout' and---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>------ -   #VUID-vkCmdDrawIndexedIndirect-None-08114# Descriptors in each bound---     descriptor set, specified via 'cmdBindDescriptorSets', /must/ be---     valid if they are statically used by the---     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point---     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'---     was not created with---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'------ -   #VUID-vkCmdDrawIndexedIndirect-None-08115# If the descriptors used---     by the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind---     point were specified via 'cmdBindDescriptorSets', the bound---     'Vulkan.Core10.Handles.Pipeline' /must/ have been created without---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'------ -   #VUID-vkCmdDrawIndexedIndirect-None-08116# Descriptors in bound---     descriptor buffers, specified via---     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',---     /must/ be valid if they are dynamically used by the---     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point---     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'---     was created with---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'------ -   #VUID-vkCmdDrawIndexedIndirect-None-08604# Descriptors in bound---     descriptor buffers, specified via---     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',---     /must/ be valid if they are dynamically used by any---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding---     to the pipeline bind point used by this command------ -   #VUID-vkCmdDrawIndexedIndirect-None-08117# If the descriptors used---     by the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind---     point were specified via---     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',---     the bound 'Vulkan.Core10.Handles.Pipeline' /must/ have been created---     with---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'------ -   #VUID-vkCmdDrawIndexedIndirect-None-08119# If a descriptor is---     dynamically used with a 'Vulkan.Core10.Handles.Pipeline' created---     with---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',---     the descriptor memory /must/ be resident------ -   #VUID-vkCmdDrawIndexedIndirect-None-08605# If a descriptor is---     dynamically used with a 'Vulkan.Extensions.Handles.ShaderEXT'---     created with a 'Vulkan.Core10.Handles.DescriptorSetLayout' that was---     created with---     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',---     the descriptor memory /must/ be resident------ -   #VUID-vkCmdDrawIndexedIndirect-None-08606# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>---     feature is not enabled, a valid pipeline /must/ be bound to the---     pipeline bind point used by this command------ -   #VUID-vkCmdDrawIndexedIndirect-None-08607# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>---     is enabled, either a valid pipeline /must/ be bound to the pipeline---     bind point used by this command, or a valid combination of valid and---     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be---     bound to every supported shader stage corresponding to the pipeline---     bind point used by this command------ -   #VUID-vkCmdDrawIndexedIndirect-None-08608# If a pipeline is bound to---     the pipeline bind point used by this command, there /must/ not have---     been any calls to dynamic state setting commands for any state not---     specified as dynamic in the 'Vulkan.Core10.Handles.Pipeline' object---     bound to the pipeline bind point used by this command, since that---     pipeline was bound------ -   #VUID-vkCmdDrawIndexedIndirect-None-08609# If the---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command or any---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding---     to the pipeline bind point used by this command accesses a---     'Vulkan.Core10.Handles.Sampler' object that uses unnormalized---     coordinates, that sampler /must/ not be used to sample from any---     'Vulkan.Core10.Handles.Image' with a---     'Vulkan.Core10.Handles.ImageView' of the type---     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D',---     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE',---     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D_ARRAY',---     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D_ARRAY' or---     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY', in---     any shader stage------ -   #VUID-vkCmdDrawIndexedIndirect-None-08610# If the---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command or any---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding---     to the pipeline bind point used by this command accesses a---     'Vulkan.Core10.Handles.Sampler' object that uses unnormalized---     coordinates, that sampler /must/ not be used with any of the SPIR-V---     @OpImageSample*@ or @OpImageSparseSample*@ instructions with---     @ImplicitLod@, @Dref@ or @Proj@ in their name, in any shader stage------ -   #VUID-vkCmdDrawIndexedIndirect-None-08611# If the---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command or any---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding---     to the pipeline bind point used by this command accesses a---     'Vulkan.Core10.Handles.Sampler' object that uses unnormalized---     coordinates, that sampler /must/ not be used with any of the SPIR-V---     @OpImageSample*@ or @OpImageSparseSample*@ instructions that---     includes a LOD bias or any offset values, in any shader stage------ -   #VUID-vkCmdDrawIndexedIndirect-uniformBuffers-06935# If any stage of---     the 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline---     bind point used by this command accesses a uniform buffer, and that---     stage was created without enabling either---     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'---     or---     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'---     for @uniformBuffers@, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>---     feature is not enabled, that stage /must/ not access values outside---     of the range of the buffer as specified in the descriptor set bound---     to the same pipeline bind point------ -   #VUID-vkCmdDrawIndexedIndirect-None-08612# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>---     feature is not enabled, and any---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding---     to the pipeline bind point used by this command accesses a uniform---     buffer, it /must/ not access values outside of the range of the---     buffer as specified in the descriptor set bound to the same pipeline---     bind point------ -   #VUID-vkCmdDrawIndexedIndirect-storageBuffers-06936# If any stage of---     the 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline---     bind point used by this command accesses a storage buffer, and that---     stage was created without enabling either---     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'---     or---     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'---     for @storageBuffers@, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>---     feature is not enabled, that stage /must/ not access values outside---     of the range of the buffer as specified in the descriptor set bound---     to the same pipeline bind point------ -   #VUID-vkCmdDrawIndexedIndirect-None-08613# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>---     feature is not enabled, and any---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding---     to the pipeline bind point used by this command accesses a storage---     buffer, it /must/ not access values outside of the range of the---     buffer as specified in the descriptor set bound to the same pipeline---     bind point------ -   #VUID-vkCmdDrawIndexedIndirect-commandBuffer-02707# If---     @commandBuffer@ is an unprotected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, any resource accessed by---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding bound shaders>---     /must/ not be a protected resource------ -   #VUID-vkCmdDrawIndexedIndirect-None-06550# If---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>---     accesses a 'Vulkan.Core10.Handles.Sampler' or---     'Vulkan.Core10.Handles.ImageView' object that enables---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,---     that object /must/ only be used with @OpImageSample*@ or---     @OpImageSparseSample*@ instructions------ -   #VUID-vkCmdDrawIndexedIndirect-ConstOffset-06551# If---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>---     accesses a 'Vulkan.Core10.Handles.Sampler' or---     'Vulkan.Core10.Handles.ImageView' object that enables---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,---     that object /must/ not use the @ConstOffset@ and @Offset@ operands------ -   #VUID-vkCmdDrawIndexedIndirect-viewType-07752# If a---     'Vulkan.Core10.Handles.ImageView' is accessed as a result of this---     command, then the image view’s @viewType@ /must/ match the @Dim@---     operand of the @OpTypeImage@ as described in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-operation-validation ???>------ -   #VUID-vkCmdDrawIndexedIndirect-format-07753# If a---     'Vulkan.Core10.Handles.ImageView' is accessed as a result of this---     command, then the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-numericformat numeric type>---     of the image view’s @format@ and the @Sampled@ @Type@ operand of the---     @OpTypeImage@ /must/ match------ -   #VUID-vkCmdDrawIndexedIndirect-OpImageWrite-08795# If a---     'Vulkan.Core10.Handles.ImageView' created with a format other than---     'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using---     @OpImageWrite@ as a result of this command, then the @Type@ of the---     @Texel@ operand of that instruction /must/ have at least as many---     components as the image view’s format------ -   #VUID-vkCmdDrawIndexedIndirect-OpImageWrite-08796# If a---     'Vulkan.Core10.Handles.ImageView' created with the format---     'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using---     @OpImageWrite@ as a result of this command, then the @Type@ of the---     @Texel@ operand of that instruction /must/ have four components------ -   #VUID-vkCmdDrawIndexedIndirect-OpImageWrite-04469# If a---     'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@---     as a result of this command, then the @Type@ of the @Texel@ operand---     of that instruction /must/ have at least as many components as the---     buffer view’s format------ -   #VUID-vkCmdDrawIndexedIndirect-SampledType-04470# If a---     'Vulkan.Core10.Handles.ImageView' with a---     'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component---     width is accessed as a result of this command, the @SampledType@ of---     the @OpTypeImage@ operand of that instruction /must/ have a @Width@---     of 64------ -   #VUID-vkCmdDrawIndexedIndirect-SampledType-04471# If a---     'Vulkan.Core10.Handles.ImageView' with a---     'Vulkan.Core10.Enums.Format.Format' that has a component width less---     than 64-bit is accessed as a result of this command, the---     @SampledType@ of the @OpTypeImage@ operand of that instruction---     /must/ have a @Width@ of 32------ -   #VUID-vkCmdDrawIndexedIndirect-SampledType-04472# If a---     'Vulkan.Core10.Handles.BufferView' with a---     'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component---     width is accessed as a result of this command, the @SampledType@ of---     the @OpTypeImage@ operand of that instruction /must/ have a @Width@---     of 64------ -   #VUID-vkCmdDrawIndexedIndirect-SampledType-04473# If a---     'Vulkan.Core10.Handles.BufferView' with a---     'Vulkan.Core10.Enums.Format.Format' that has a component width less---     than 64-bit is accessed as a result of this command, the---     @SampledType@ of the @OpTypeImage@ operand of that instruction---     /must/ have a @Width@ of 32------ -   #VUID-vkCmdDrawIndexedIndirect-sparseImageInt64Atomics-04474# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>---     feature is not enabled, 'Vulkan.Core10.Handles.Image' objects---     created with the---     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_RESIDENCY_BIT'---     flag /must/ not be accessed by atomic instructions through an---     @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this---     command------ -   #VUID-vkCmdDrawIndexedIndirect-sparseImageInt64Atomics-04475# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>---     feature is not enabled, 'Vulkan.Core10.Handles.Buffer' objects---     created with the---     'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_SPARSE_RESIDENCY_BIT'---     flag /must/ not be accessed by atomic instructions through an---     @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this---     command------ -   #VUID-vkCmdDrawIndexedIndirect-OpImageWeightedSampleQCOM-06971# If---     @OpImageWeightedSampleQCOM@ is used to sample a---     'Vulkan.Core10.Handles.ImageView' as a result of this command, then---     the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM'------ -   #VUID-vkCmdDrawIndexedIndirect-OpImageWeightedSampleQCOM-06972# If---     @OpImageWeightedSampleQCOM@ uses a 'Vulkan.Core10.Handles.ImageView'---     as a sample weight image as a result of this command, then the image---     view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM'------ -   #VUID-vkCmdDrawIndexedIndirect-OpImageBoxFilterQCOM-06973# If---     @OpImageBoxFilterQCOM@ is used to sample a---     'Vulkan.Core10.Handles.ImageView' as a result of this command, then---     the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM'------ -   #VUID-vkCmdDrawIndexedIndirect-OpImageBlockMatchSSDQCOM-06974# If---     @OpImageBlockMatchSSDQCOM@ is used to read from an---     'Vulkan.Core10.Handles.ImageView' as a result of this command, then---     the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'------ -   #VUID-vkCmdDrawIndexedIndirect-OpImageBlockMatchSADQCOM-06975# If---     @OpImageBlockMatchSADQCOM@ is used to read from an---     'Vulkan.Core10.Handles.ImageView' as a result of this command, then---     the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'------ -   #VUID-vkCmdDrawIndexedIndirect-OpImageBlockMatchSADQCOM-06976# If---     @OpImageBlockMatchSADQCOM@ or OpImageBlockMatchSSDQCOM is used to---     read from a reference image as result of this command, then the---     specified reference coordinates /must/ not fail---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation integer texel coordinate validation>------ -   #VUID-vkCmdDrawIndexedIndirect-OpImageWeightedSampleQCOM-06977# If---     @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,---     @OpImageBlockMatchWindowSSDQCOM@, @OpImageBlockMatchWindowSADQCOM@,---     @OpImageBlockMatchGatherSSDQCOM@, @OpImageBlockMatchGatherSADQCOM@,---     @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a---     'Vulkan.Core10.Handles.Sampler' as a result of this command, then---     the sampler /must/ have been created with---     'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'------ -   #VUID-vkCmdDrawIndexedIndirect-OpImageWeightedSampleQCOM-06978# If---     any command other than @OpImageWeightedSampleQCOM@,---     @OpImageBoxFilterQCOM@, @OpImageBlockMatchWindowSSDQCOM@,---     @OpImageBlockMatchWindowSADQCOM@, @OpImageBlockMatchGatherSSDQCOM@,---     @OpImageBlockMatchGatherSADQCOM@, @OpImageBlockMatchSSDQCOM@, or---     @OpImageBlockMatchSADQCOM@ uses a 'Vulkan.Core10.Handles.Sampler' as---     a result of this command, then the sampler /must/ not have been---     created with---     'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'------ -   #VUID-vkCmdDrawIndexedIndirect-OpImageBlockMatchWindow-09215# If a---     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@---     instruction is used to read from an---     'Vulkan.Core10.Handles.ImageView' as a result of this command, then---     the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'------ -   #VUID-vkCmdDrawIndexedIndirect-OpImageBlockMatchWindow-09216# If a---     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@---     instruction is used to read from an---     'Vulkan.Core10.Handles.ImageView' as a result of this command, then---     the image view’s format /must/ be a single-component format.------ -   #VUID-vkCmdDrawIndexedIndirect-OpImageBlockMatchWindow-09217# If a---     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@---     read from a reference image as result of this command, then the---     specified reference coordinates /must/ not fail---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation integer texel coordinate validation>------ -   #VUID-vkCmdDrawIndexedIndirect-None-07288# Any shader invocation---     executed by this command /must/---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-termination terminate>------ -   #VUID-vkCmdDrawIndexedIndirect-renderPass-02684# The current render---     pass /must/ be---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-compatibility compatible>---     with the @renderPass@ member of the---     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo' structure---     specified when creating the 'Vulkan.Core10.Handles.Pipeline' bound---     to---     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'------ -   #VUID-vkCmdDrawIndexedIndirect-subpass-02685# The subpass index of---     the current render pass /must/ be equal to the @subpass@ member of---     the 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo' structure---     specified when creating the 'Vulkan.Core10.Handles.Pipeline' bound---     to---     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'------ -   #VUID-vkCmdDrawIndexedIndirect-None-07748# If any shader statically---     accesses an input attachment, a valid descriptor /must/ be bound to---     the pipeline via a descriptor set------ -   #VUID-vkCmdDrawIndexedIndirect-OpTypeImage-07468# If any shader---     executed by this pipeline accesses an @OpTypeImage@ variable with a---     @Dim@ operand of @SubpassData@, it /must/ be decorated with an---     @InputAttachmentIndex@ that corresponds to a valid input attachment---     in the current subpass------ -   #VUID-vkCmdDrawIndexedIndirect-None-07469# Input attachment views---     accessed in a subpass /must/ be created with the same---     'Vulkan.Core10.Enums.Format.Format' as the corresponding subpass---     definition, and be created with a 'Vulkan.Core10.Handles.ImageView'---     that is compatible with the attachment referenced by the subpass\'---     @pInputAttachments@[@InputAttachmentIndex@] in the currently bound---     'Vulkan.Core10.Handles.Framebuffer' as specified by---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#compatibility-inputattachment Fragment Input Attachment Compatibility>------ -   #VUID-vkCmdDrawIndexedIndirect-None-06537# Memory backing image---     subresources used as attachments in the current render pass /must/---     not be written in any way other than as an attachment by this---     command------ -   #VUID-vkCmdDrawIndexedIndirect-None-09000# If a color attachment is---     written by any prior command in this subpass or by the load, store,---     or resolve operations for this subpass, it is not in the---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'---     image layout, and either:------     -   the---         'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'---         is set on the currently bound pipeline or------     -   the last call to---         'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'---         included---         'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'---         and------         -   there is no currently bound graphics pipeline or------         -   the currently bound graphics pipeline was created with---             'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'---             it /must/ not be accessed in any way other than as an---             attachment by this command------ -   #VUID-vkCmdDrawIndexedIndirect-None-09001# If a depth attachment is---     written by any prior command in this subpass or by the load, store,---     or resolve operations for this subpass, it is not in the---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'---     image layout, and either:------     -   the---         'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'---         is set on the currently bound pipeline or------     -   the last call to---         'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'---         included---         'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT'---         and------         -   there is no currently bound graphics pipeline or------         -   the currently bound graphics pipeline was created with---             'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'---             it /must/ not be accessed in any way other than as an---             attachment by this command------ -   #VUID-vkCmdDrawIndexedIndirect-None-09002# If a stencil attachment---     is written by any prior command in this subpass or by the load,---     store, or resolve operations for this subpass, it is not in the---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'---     image layout, and either:------     -   the---         'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'---         is set on the currently bound pipeline or------     -   the last call to---         'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'---         included---         'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'---         and------         -   there is no currently bound graphics pipeline or------         -   the currently bound graphics pipeline was created with---             'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'---             it /must/ not be accessed in any way other than as an---             attachment by this command------ -   #VUID-vkCmdDrawIndexedIndirect-None-09003# If an attachment is---     written by any prior command in this subpass or by the load, store,---     or resolve operations for this subpass, it /must/ not be accessed in---     any way other than as an attachment, storage image, or sampled image---     by this command------ -   #VUID-vkCmdDrawIndexedIndirect-None-06539# If any previously---     recorded command in the current subpass accessed an image---     subresource used as an attachment in this subpass in any way other---     than as an attachment, this command /must/ not write to that image---     subresource as an attachment------ -   #VUID-vkCmdDrawIndexedIndirect-None-06886# If the current render---     pass instance uses a depth\/stencil attachment with a read-only---     layout for the depth aspect,---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-depth-write depth writes>---     /must/ be disabled------ -   #VUID-vkCmdDrawIndexedIndirect-None-06887# If the current render---     pass instance uses a depth\/stencil attachment with a read-only---     layout for the stencil aspect, both front and back @writeMask@ are---     not zero, and stencil test is enabled,---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-stencil all stencil ops>---     /must/ be 'Vulkan.Core10.Enums.StencilOp.STENCIL_OP_KEEP'------ -   #VUID-vkCmdDrawIndexedIndirect-None-07831# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT' dynamic---     state enabled then 'cmdSetViewport' /must/ have been called in the---     current command buffer prior to this drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-07832# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR' dynamic---     state enabled then 'cmdSetScissor' /must/ have been called in the---     current command buffer prior to this drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-07833# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_WIDTH' dynamic---     state enabled then 'cmdSetLineWidth' /must/ have been called in the---     current command buffer prior to this drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-08617# If a shader object is---     bound to any graphics stage, and the most recent call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'---     in the current command buffer set @polygonMode@ to---     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE',---     'cmdSetLineWidth' /must/ have been called in the current command---     buffer prior to this drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-08618# If a shader object is---     bound to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'---     stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'---     in the current command buffer set @primitiveTopology@ to any line---     topology, 'cmdSetLineWidth' /must/ have been called in the current---     command buffer prior to this drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-08619# If a shader object that---     outputs line primitives is bound to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'---     or---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'---     stage, 'cmdSetLineWidth' /must/ have been called in the current---     command buffer prior to this drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-07834# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS' dynamic---     state enabled then 'cmdSetDepthBias' or---     'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-08620# If a shader object is---     bound to any graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable'---     in the current command buffer set @depthBiasEnable@ to---     'Vulkan.Core10.FundamentalTypes.TRUE', 'cmdSetDepthBias' or---     'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-07835# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_BLEND_CONSTANTS'---     dynamic state enabled then 'cmdSetBlendConstants' /must/ have been---     called in the current command buffer prior to this drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-08621# If a shader object is---     bound to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'---     stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'---     in the current command buffer set any element of---     @pColorBlendEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE', and---     the most recent call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'---     in the current command buffer set the same element of---     @pColorBlendEquations@ to a---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.ColorBlendEquationEXT'---     structure with any 'Vulkan.Core10.Enums.BlendFactor.BlendFactor'---     member with a value of---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_COLOR',---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR',---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_ALPHA', or---     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA',---     'cmdSetBlendConstants' /must/ have been called in the current---     command buffer prior to this drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-07836# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS'---     dynamic state enabled, and if the current @depthBoundsTestEnable@---     state is 'Vulkan.Core10.FundamentalTypes.TRUE', then---     'cmdSetDepthBounds' /must/ have been called in the current command---     buffer prior to this drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-08622# If a shader object is---     bound to any graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'---     in the current command buffer set @depthBoundsTestEnable@ to---     'Vulkan.Core10.FundamentalTypes.TRUE', then 'cmdSetDepthBounds'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-07837# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_COMPARE_MASK'---     dynamic state enabled, and if the current @stencilTestEnable@ state---     is 'Vulkan.Core10.FundamentalTypes.TRUE', then---     'cmdSetStencilCompareMask' /must/ have been called in the current---     command buffer prior to this drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-08623# If a shader object is---     bound to any graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'---     in the current command buffer set @stencilTestEnable@ to---     'Vulkan.Core10.FundamentalTypes.TRUE', 'cmdSetStencilCompareMask'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-07838# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'---     dynamic state enabled, and if the current @stencilTestEnable@ state---     is 'Vulkan.Core10.FundamentalTypes.TRUE', then---     'cmdSetStencilWriteMask' /must/ have been called in the current---     command buffer prior to this drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-08624# If a shader object is---     bound to any graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'---     in the current command buffer set @stencilTestEnable@ to---     'Vulkan.Core10.FundamentalTypes.TRUE', 'cmdSetStencilWriteMask'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-07839# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_REFERENCE'---     dynamic state enabled, and if the current @stencilTestEnable@ state---     is 'Vulkan.Core10.FundamentalTypes.TRUE', then---     'cmdSetStencilReference' /must/ have been called in the current---     command buffer prior to this drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-08625# If a shader object is---     bound to any graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'---     in the current command buffer set @stencilTestEnable@ to---     'Vulkan.Core10.FundamentalTypes.TRUE', 'cmdSetStencilReference'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-maxMultiviewInstanceIndex-02688# If---     the draw is recorded in a render pass instance with multiview---     enabled, the maximum instance index /must/ be less than or equal to---     'Vulkan.Core11.Promoted_From_VK_KHR_multiview.PhysicalDeviceMultiviewProperties'::@maxMultiviewInstanceIndex@------ -   #VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-02689# If the---     bound graphics pipeline was created with---     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@---     set to 'Vulkan.Core10.FundamentalTypes.TRUE' and the current subpass---     has a depth\/stencil attachment, then that attachment /must/ have---     been created with the---     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT'---     bit set------ -   #VUID-vkCmdDrawIndexedIndirect-None-06666# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-08626# If a shader object is---     bound to any graphics stage, and the most recent call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'---     in the current command buffer set @sampleLocationsEnable@ to---     'Vulkan.Core10.FundamentalTypes.TRUE', and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-sampleLocationsPerPixel-07934# If the---     bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'---     state enabled, then the @sampleLocationsPerPixel@ member of---     @pSampleLocationsInfo@ in the last call to---     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'---     /must/ equal the @rasterizationSamples@ member of the---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'---     structure the bound graphics pipeline has been created with------ -   #VUID-vkCmdDrawIndexedIndirect-None-07840# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic---     state enabled then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-08627# If a shader object is---     bound to any graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-07841# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRONT_FACE' dynamic---     state enabled then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-08628# If a shader object is---     bound to any graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-07843# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE'---     dynamic state enabled then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-08629# If a shader object is---     bound to any graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-07844# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'---     dynamic state enabled then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-08630# If a shader object is---     bound to any graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-07845# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP'---     dynamic state enabled then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-08631# If a shader object is---     bound to any graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'---     in the current command buffer set @depthTestEnable@ to---     'Vulkan.Core10.FundamentalTypes.TRUE', then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-07846# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE'---     dynamic state enabled then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-08632# If a shader object is---     bound to any graphics stage, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthBounds depthBounds>---     feature is enabled, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then the---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-07847# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE'---     dynamic state enabled then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-08633# If a shader object is---     bound to any graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-07848# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP' dynamic---     state enabled then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-08634# If a shader object is---     bound to any graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'---     in the current command buffer set @stencilTestEnable@ to---     'Vulkan.Core10.FundamentalTypes.TRUE', then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-viewportCount-03417# If the bound---     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'---     dynamic state enabled, but not the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'---     dynamic state enabled, then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'---     /must/ have been called in the current command buffer prior to this---     drawing command, and the @viewportCount@ parameter of---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'---     /must/ match the---     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@scissorCount@---     of the pipeline------ -   #VUID-vkCmdDrawIndexedIndirect-scissorCount-03418# If the bound---     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'---     dynamic state enabled, but not the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'---     dynamic state enabled, then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'---     /must/ have been called in the current command buffer prior to this---     drawing command, and the @scissorCount@ parameter of---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'---     /must/ match the---     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@viewportCount@---     of the pipeline------ -   #VUID-vkCmdDrawIndexedIndirect-viewportCount-03419# If the bound---     graphics pipeline state was created with both the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'---     and---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'---     dynamic states enabled then both---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'---     and---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'---     /must/ have been called in the current command buffer prior to this---     drawing command, and the @viewportCount@ parameter of---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'---     /must/ match the @scissorCount@ parameter of---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'------ -   #VUID-vkCmdDrawIndexedIndirect-None-08635# If a shader object is---     bound to any graphics stage, then both---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'---     and---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'---     /must/ have been called in the current command buffer prior to this---     drawing command, and the @viewportCount@ parameter of---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'---     /must/ match the @scissorCount@ parameter of---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'------ -   #VUID-vkCmdDrawIndexedIndirect-viewportCount-04137# If the bound---     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'---     dynamic state enabled, but not the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_NV'---     dynamic state enabled, then the bound graphics pipeline /must/ have---     been created with---     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.PipelineViewportWScalingStateCreateInfoNV'::@viewportCount@---     greater or equal to the @viewportCount@ parameter in the last call---     to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'------ -   #VUID-vkCmdDrawIndexedIndirect-viewportCount-04138# If the bound---     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'---     and---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_NV'---     dynamic states enabled then the @viewportCount@ parameter in the---     last call to---     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV'---     /must/ be greater than or equal to the @viewportCount@ parameter in---     the last call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'------ -   #VUID-vkCmdDrawIndexedIndirect-None-09232# If a shader object is---     bound to any graphics stage, and the @VK_NV_clip_space_w_scaling@---     extension is enabled on the device, then---     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV'---     must have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-08636# If a shader object is---     bound to any graphics stage, and the @VK_NV_clip_space_w_scaling@---     extension is enabled on the device, then the @viewportCount@---     parameter in the last call to---     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV'---     /must/ be greater than or equal to the @viewportCount@ parameter in---     the last call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'------ -   #VUID-vkCmdDrawIndexedIndirect-viewportCount-04139# If the bound---     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'---     dynamic state enabled, but not the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV'---     dynamic state enabled, then the bound graphics pipeline /must/ have---     been created with---     'Vulkan.Extensions.VK_NV_shading_rate_image.PipelineViewportShadingRateImageStateCreateInfoNV'::@viewportCount@---     greater or equal to the @viewportCount@ parameter in the last call---     to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'------ -   #VUID-vkCmdDrawIndexedIndirect-viewportCount-04140# If the bound---     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'---     and---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV'---     dynamic states enabled then the @viewportCount@ parameter in the---     last call to---     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV'---     /must/ be greater than or equal to the @viewportCount@ parameter in---     the last call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'------ -   #VUID-vkCmdDrawIndexedIndirect-shadingRateImage-09233# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>---     feature is enabled, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set rasterizerDiscardEnable to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetCoarseSampleOrderNV'---     must have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-shadingRateImage-09234# If a shader---     object is bound to any graphics stage, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>---     feature is enabled on the device, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set rasterizerDiscardEnable to---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV'---     in the current command buffer set shadingRateImageEnable to---     'Vulkan.Core10.FundamentalTypes.TRUE', then---     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV'---     must have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-08637# If a shader object is---     bound to any graphics stage, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>---     feature is enabled on the device, then the @viewportCount@ parameter---     in the last call to---     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV'---     /must/ be greater than or equal to the @viewportCount@ parameter in---     the last call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'------ -   #VUID-vkCmdDrawIndexedIndirect-VkPipelineVieportCreateInfo-04141# If---     the bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'---     dynamic state enabled and a---     'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'---     structure chained from---     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo', then the---     bound graphics pipeline /must/ have been created with---     'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'::@viewportCount@---     greater or equal to the @viewportCount@ parameter in the last call---     to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'------ -   #VUID-vkCmdDrawIndexedIndirect-VkPipelineVieportCreateInfo-04142# If---     the bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'---     dynamic state enabled and a---     'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'---     structure chained from---     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo', then the---     bound graphics pipeline /must/ have been created with---     'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'::@exclusiveScissorCount@---     greater or equal to the @viewportCount@ parameter in the last call---     to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'------ -   #VUID-vkCmdDrawIndexedIndirect-None-07878# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV'---     dynamic state enabled then---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-07879# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV'---     dynamic state enabled then---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-exclusiveScissor-09235# If a shader---     object is bound to any graphics stage, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>---     feature is enabled, then---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'---     must have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-08638# If a shader object is---     bound to any graphics stage, and the most recent call to---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV'---     in the current command buffer set any element of---     @pExclusiveScissorEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE',---     then---     'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-04876# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE'---     dynamic state enabled then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-08639# If a shader object is---     bound to any graphics stage, then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-04877# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE'---     dynamic state enabled then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-08640# If a shader object is---     bound to any graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-logicOp-04878# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetLogicOpEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command and the @logicOp@ /must/ be a valid---     'Vulkan.Core10.Enums.LogicOp.LogicOp' value------ -   #VUID-vkCmdDrawIndexedIndirect-None-08641# If a shader object is---     bound to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'---     stage, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>---     feature is enabled on the device, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetLogicOpEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command and the @logicOp@ /must/ be a valid---     'Vulkan.Core10.Enums.LogicOp.LogicOp' value------ -   #VUID-vkCmdDrawIndexedIndirect-primitiveFragmentShadingRateWithMultipleViewports-04552#---     If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>---     limit is not supported, the bound graphics pipeline was created with---     the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'---     dynamic state enabled, and any of the shader stages of the bound---     graphics pipeline write to the @PrimitiveShadingRateKHR@ built-in,---     then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'---     /must/ have been called in the current command buffer prior to this---     drawing command, and the @viewportCount@ parameter of---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'---     /must/ be @1@------ -   #VUID-vkCmdDrawIndexedIndirect-primitiveFragmentShadingRateWithMultipleViewports-08642#---     If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>---     limit is not supported, and any shader object bound to a graphics---     stage writes to the @PrimitiveShadingRateKHR@ built-in, then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'---     /must/ have been called in the current command buffer prior to this---     drawing command, and the @viewportCount@ parameter of---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'---     /must/ be @1@------ -   #VUID-vkCmdDrawIndexedIndirect-blendEnable-04727# If rasterization---     is not disabled in the bound graphics pipeline, then for each color---     attachment in the subpass, if the corresponding image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     do not contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT',---     then the @blendEnable@ member of the corresponding element of the---     @pAttachments@ member of @pColorBlendState@ /must/ be---     'Vulkan.Core10.FundamentalTypes.FALSE'------ -   #VUID-vkCmdDrawIndexedIndirect-None-08643# If a shader object is---     bound to any graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then for each color---     attachment in the render pass, if the corresponding image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     do not contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT',---     then the corresponding member of @pColorBlendEnables@ in the most---     recent call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'---     in the current command buffer that affected that attachment index---     /must/ have been 'Vulkan.Core10.FundamentalTypes.FALSE'------ -   #VUID-vkCmdDrawIndexedIndirect-multisampledRenderToSingleSampled-07284#---     If rasterization is not disabled in the bound graphics pipeline, and---     none of the @VK_AMD_mixed_attachment_samples@ extension, the---     @VK_NV_framebuffer_mixed_samples@ extension, or the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>---     feature is enabled, then @rasterizationSamples@ for the currently---     bound graphics pipeline /must/ be the same as the current subpass---     color and\/or depth\/stencil attachments------ -   #VUID-vkCmdDrawIndexedIndirect-None-08644# If a shader object is---     bound to any graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', and none of the---     @VK_AMD_mixed_attachment_samples@ extension, the---     @VK_NV_framebuffer_mixed_samples@ extension, or the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>---     feature is enabled, then the most recent call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'---     in the current command buffer /must/ have set @rasterizationSamples@---     to be the same as the number of samples for the current render pass---     color and\/or depth\/stencil attachments------ -   #VUID-vkCmdDrawIndexedIndirect-None-08876# If a shader object is---     bound to any graphics stage, the current render pass instance /must/---     have been begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'------ -   #VUID-vkCmdDrawIndexedIndirect-imageView-06172# If the current---     render pass instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     the @imageView@ member of @pDepthAttachment@ is not---     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of---     @pDepthAttachment@ is---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL',---     this command /must/ not write any values to the depth attachment------ -   #VUID-vkCmdDrawIndexedIndirect-imageView-06173# If the current---     render pass instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     the @imageView@ member of @pStencilAttachment@ is not---     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of---     @pStencilAttachment@ is---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL',---     this command /must/ not write any values to the stencil attachment------ -   #VUID-vkCmdDrawIndexedIndirect-imageView-06174# If the current---     render pass instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     the @imageView@ member of @pDepthAttachment@ is not---     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of---     @pDepthAttachment@ is---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL',---     this command /must/ not write any values to the depth attachment------ -   #VUID-vkCmdDrawIndexedIndirect-imageView-06175# If the current---     render pass instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     the @imageView@ member of @pStencilAttachment@ is not---     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of---     @pStencilAttachment@ is---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL',---     this command /must/ not write any values to the stencil attachment------ -   #VUID-vkCmdDrawIndexedIndirect-imageView-06176# If the current---     render pass instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     the @imageView@ member of @pDepthAttachment@ is not---     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of---     @pDepthAttachment@ is---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL',---     this command /must/ not write any values to the depth attachment------ -   #VUID-vkCmdDrawIndexedIndirect-imageView-06177# If the current---     render pass instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     the @imageView@ member of @pStencilAttachment@ is not---     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of---     @pStencilAttachment@ is---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL',---     this command /must/ not write any values to the stencil attachment------ -   #VUID-vkCmdDrawIndexedIndirect-viewMask-06178# If the current render---     pass instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     the currently bound graphics pipeline /must/ have been created with---     a---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@viewMask@---     equal to---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@viewMask@------ -   #VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-06179# If the---     current render pass instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     the currently bound graphics pipeline /must/ have been created with---     a---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@colorAttachmentCount@---     equal to---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@------ -   #VUID-vkCmdDrawIndexedIndirect-dynamicRenderingUnusedAttachments-08910#---     If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>---     feature is not enabled, and the current render pass instance was---     begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'---     and---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@---     greater than @0@, then each element of the---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@---     array with a @imageView@ not equal to---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created---     with a 'Vulkan.Core10.Enums.Format.Format' equal to the---     corresponding element of---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@---     used to create the currently bound graphics pipeline------ -   #VUID-vkCmdDrawIndexedIndirect-dynamicRenderingUnusedAttachments-08911#---     If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>---     feature is enabled, and the current render pass instance was begun---     with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'---     and---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@---     greater than @0@, then each element of the---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@---     array with a @imageView@ not equal to---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created---     with a 'Vulkan.Core10.Enums.Format.Format' equal to the---     corresponding element of---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@---     used to create the currently bound graphics pipeline, or the---     corresponding element of---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,---     if it exists, /must/ be---     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'------ -   #VUID-vkCmdDrawIndexedIndirect-dynamicRenderingUnusedAttachments-08912#---     If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>---     feature is not enabled, and the current render pass instance was---     begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'---     and---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@---     greater than @0@, then each element of the---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@---     array with a @imageView@ equal to---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have the---     corresponding element of---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@---     used to create the currently bound pipeline equal to---     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'------ -   #VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-09362# If the---     current render pass instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     with a---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@---     equal to @1@, there is no shader object bound to any graphics stage,---     and a color attachment with a resolve mode of---     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',---     each element of the---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@---     array with a @resolveImageView@ not equal to---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created---     with an image created with a---     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@---     value equal to the---     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@---     value used to create the currently bound graphics pipeline------ -   #VUID-vkCmdDrawIndexedIndirect-None-09363# If there is no shader---     object bound to any graphics stage, the current render pass instance---     was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'---     and a---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@---     equal to @1@, and a color attachment with a resolve mode of---     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',---     each element of the---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@---     array with a @imageView@ not equal to---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created---     with an image created with a---     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@---     value equal to the---     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@---     value used to create the currently bound graphics pipeline------ -   #VUID-vkCmdDrawIndexedIndirect-None-09364# If the current render---     pass instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     there is no shader object bound to any graphics stage, and the---     currently bound graphics pipeline was created with a non-zero---     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@---     value and with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'---     dynamic state enabled, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'---     /must/ have set the blend enable to---     'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-09365# If the current render---     pass instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     there is no shader object bound to any graphics stage, and the---     currently bound graphics pipeline was created with a non-zero---     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@---     value and with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'---     dynamic state enabled, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'---     /must/ have set @rasterizationSamples@ to---     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior---     to this drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-09366# If there is a shader---     object bound to any graphics stage, and the current render pass---     includes a color attachment that uses the---     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'---     resolve mode, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'---     /must/ have set blend enable to---     'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-rasterizationSamples-09367# If there---     is a shader object bound to any graphics stage, and the current---     render pass includes a color attachment that uses the---     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'---     resolve mode, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'---     /must/ have set @rasterizationSamples@ to---     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior---     to this drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-09368# If the current render---     pass instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     there is no shader object bound to any graphics stage, and the---     currently bound graphics pipeline was created with a non-zero---     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@---     value and with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'---     dynamic state enabled, then---     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'---     /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing---     command------ -   #VUID-vkCmdDrawIndexedIndirect-None-09369# If the current render---     pass instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     there is no shader object bound to any graphics stage, and the---     currently bound graphics pipeline was created with a non-zero---     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@---     value and with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'---     dynamic state enabled, then---     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'---     /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing---     command------ -   #VUID-vkCmdDrawIndexedIndirect-pFragmentSize-09370# If there is a---     shader object bound to any graphics stage, and the current render---     pass includes a color attachment that uses the---     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'---     resolve mode, then---     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'---     /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing---     command------ -   #VUID-vkCmdDrawIndexedIndirect-pFragmentSize-09371# If there is a---     shader object bound to any graphics stage, and the current render---     pass includes a color attachment that uses the---     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'---     resolve mode, then---     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'---     /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing---     command------ -   #VUID-vkCmdDrawIndexedIndirect-None-07749# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-08646# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>---     feature is enabled on the device, and a shader object is bound to---     the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'---     stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-attachmentCount-07750# If the bound---     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'---     dynamic state enabled then the @attachmentCount@ parameter of---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'---     /must/ be greater than or equal to the---     'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo'::@attachmentCount@---     of the currently bound graphics pipeline------ -   #VUID-vkCmdDrawIndexedIndirect-None-08647# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>---     feature is enabled on the device, and a shader object is bound to---     the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'---     stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then the @attachmentCount@---     parameter of most recent call to---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'---     in the current command buffer /must/ be greater than or equal to the---     number of color attachments in the current render pass instance------ -   #VUID-vkCmdDrawIndexedIndirect-None-07751# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command for each discard rectangle in---     'Vulkan.Extensions.VK_EXT_discard_rectangles.PipelineDiscardRectangleStateCreateInfoEXT'::@discardRectangleCount@------ -   #VUID-vkCmdDrawIndexedIndirect-None-07880# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-rasterizerDiscardEnable-09236# If the---     @VK_EXT_discard_rectangles@ extension is enabled, and a shader---     object is bound to any graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-08648# If the---     @VK_EXT_discard_rectangles@ extension is enabled, and a shader---     object is bound to any graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-07881# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-08649# If the---     @VK_EXT_discard_rectangles@ extension is enabled, and a shader---     object is bound to any graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'---     in the current command buffer set @discardRectangleEnable@ to---     'Vulkan.Core10.FundamentalTypes.TRUE', then---     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleModeEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-dynamicRenderingUnusedAttachments-08913#---     If the current render pass instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>---     feature is not enabled, and---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@---     was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@---     used to create the currently bound graphics pipeline /must/ be equal---     to 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'------ -   #VUID-vkCmdDrawIndexedIndirect-dynamicRenderingUnusedAttachments-08914#---     If current render pass instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>---     feature is not enabled, and---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@---     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@---     used to create the currently bound graphics pipeline /must/ be equal---     to the 'Vulkan.Core10.Enums.Format.Format' used to create---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@------ -   #VUID-vkCmdDrawIndexedIndirect-dynamicRenderingUnusedAttachments-08915#---     If the current render pass instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>---     feature is enabled,---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@---     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the value of---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@---     used to create the currently bound graphics pipeline was not equal---     to the 'Vulkan.Core10.Enums.Format.Format' used to create---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@,---     the value of the format /must/ be---     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'------ -   #VUID-vkCmdDrawIndexedIndirect-dynamicRenderingUnusedAttachments-08916#---     If the current render pass instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>---     feature is not enabled, and---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@---     was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@---     used to create the currently bound graphics pipeline /must/ be equal---     to 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'------ -   #VUID-vkCmdDrawIndexedIndirect-dynamicRenderingUnusedAttachments-08917#---     If current render pass instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>---     feature is not enabled, and---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@---     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@---     used to create the currently bound graphics pipeline /must/ be equal---     to the 'Vulkan.Core10.Enums.Format.Format' used to create---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@------ -   #VUID-vkCmdDrawIndexedIndirect-dynamicRenderingUnusedAttachments-08918#---     If the current render pass instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>---     feature is enabled,---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@---     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the value of---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@---     used to create the currently bound graphics pipeline was not equal---     to the 'Vulkan.Core10.Enums.Format.Format' used to create---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@,---     the value of the format /must/ be---     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'------ -   #VUID-vkCmdDrawIndexedIndirect-imageView-06183# If the current---     render pass instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'---     and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentShadingRateAttachmentInfoKHR'::@imageView@---     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the currently---     bound graphics pipeline /must/ have been created with---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'------ -   #VUID-vkCmdDrawIndexedIndirect-imageView-06184# If the current---     render pass instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'---     and---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT'::@imageView@---     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the currently---     bound graphics pipeline /must/ have been created with---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT'------ -   #VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-06185# If the---     currently bound pipeline was created with a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     structure, and the current render pass instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'---     with a---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@---     parameter greater than @0@, then each element of the---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@---     array with a @imageView@ not equal to---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created---     with a sample count equal to the corresponding element of the---     @pColorAttachmentSamples@ member of---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     used to create the currently bound graphics pipeline------ -   #VUID-vkCmdDrawIndexedIndirect-pDepthAttachment-06186# If the---     current render pass instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     the currently bound pipeline was created with a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     structure, and---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@---     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the---     @depthStencilAttachmentSamples@ member of---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     used to create the currently bound graphics pipeline /must/ be equal---     to the sample count used to create---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@------ -   #VUID-vkCmdDrawIndexedIndirect-pStencilAttachment-06187# If the---     current render pass instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     the currently bound pipeline was created with a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     structure, and---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@---     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the---     @depthStencilAttachmentSamples@ member of---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     used to create the currently bound graphics pipeline /must/ be equal---     to the sample count used to create---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@------ -   #VUID-vkCmdDrawIndexedIndirect-multisampledRenderToSingleSampled-07285#---     If the currently bound pipeline was created without a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     structure, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>---     feature is not enabled, and the current render pass instance was---     begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'---     with a---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@---     parameter greater than @0@, then each element of the---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@---     array with a @imageView@ not equal to---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created---     with a sample count equal to the value of @rasterizationSamples@ for---     the currently bound graphics pipeline------ -   #VUID-vkCmdDrawIndexedIndirect-multisampledRenderToSingleSampled-07286#---     If the current render pass instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     the currently bound pipeline was created without a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     structure, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>---     feature is not enabled, and---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@---     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of---     @rasterizationSamples@ for the currently bound graphics pipeline---     /must/ be equal to the sample count used to create---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@------ -   #VUID-vkCmdDrawIndexedIndirect-multisampledRenderToSingleSampled-07287#---     If the current render pass instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     the currently bound pipeline was created without a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     structure, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>---     feature is not enabled, and---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@---     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of---     @rasterizationSamples@ for the currently bound graphics pipeline---     /must/ be equal to the sample count used to create---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@------ -   #VUID-vkCmdDrawIndexedIndirect-pNext-07935# If this command has been---     called inside a render pass instance started with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     and the @pNext@ chain of---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'---     includes a---     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'---     structure with @multisampledRenderToSingleSampledEnable@ equal to---     'Vulkan.Core10.FundamentalTypes.TRUE', then the value of---     @rasterizationSamples@ for the currently bound graphics pipeline---     /must/ be equal to---     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'::@rasterizationSamples@------ -   #VUID-vkCmdDrawIndexedIndirect-renderPass-06198# If the current---     render pass instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     the currently bound pipeline /must/ have been created with a---     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@renderPass@---     equal to 'Vulkan.Core10.APIConstants.NULL_HANDLE'------ -   #VUID-vkCmdDrawIndexedIndirect-pColorAttachments-08963# If the---     current render pass instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     there is a graphics pipeline bound with a fragment shader that---     statically writes to a color attachment, the color write mask is not---     zero, color writes are enabled, and the corresponding element of the---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments->imageView@---     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the---     corresponding element of---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@---     used to create the pipeline /must/ not be---     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'------ -   #VUID-vkCmdDrawIndexedIndirect-pDepthAttachment-08964# If the---     current render pass instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     there is a graphics pipeline bound, depth test is enabled, depth---     write is enabled, and the---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@---     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@---     used to create the pipeline /must/ not be---     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'------ -   #VUID-vkCmdDrawIndexedIndirect-pStencilAttachment-08965# If the---     current render pass instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     there is a graphics pipeline bound, stencil test is enabled and the---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@---     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@---     used to create the pipeline /must/ not be---     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'------ -   #VUID-vkCmdDrawIndexedIndirect-primitivesGeneratedQueryWithRasterizerDiscard-06708#---     If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithRasterizerDiscard primitivesGeneratedQueryWithRasterizerDiscard>---     feature is not enabled and the---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'---     query is active,---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-discard rasterization discard>---     /must/ not be enabled------ -   #VUID-vkCmdDrawIndexedIndirect-primitivesGeneratedQueryWithNonZeroStreams-06709#---     If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams primitivesGeneratedQueryWithNonZeroStreams>---     feature is not enabled and the---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'---     query is active, the bound graphics pipeline /must/ not have been---     created with a non-zero value in---     'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT'::@rasterizationStream@------ -   #VUID-vkCmdDrawIndexedIndirect-None-07619# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetTessellationDomainOriginEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-07620# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-09237# If a shader object is---     bound to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'---     stage, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetTessellationDomainOriginEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-08650# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClamp depthClamp>---     feature is enabled, and a shader object is bound to any graphics---     stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-07621# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_POLYGON_MODE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-08651# If a shader object is---     bound to any graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-07622# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-08652# If a shader object is---     bound to any graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-07623# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-08653# If a shader object is---     bound to any graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-07624# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-alphaToCoverageEnable-08919# If the---     bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT'---     dynamic state enabled, and @alphaToCoverageEnable@ was---     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT',---     then the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutput Fragment Output Interface>---     /must/ contain a variable for the alpha @Component@ word in---     @Location@ 0 at @Index@ 0------ -   #VUID-vkCmdDrawIndexedIndirect-None-08654# If a shader object is---     bound to any graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-alphaToCoverageEnable-08920# If a---     shader object is bound to any graphics stage, and the most recent---     call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'---     in the current command buffer set @alphaToCoverageEnable@ to---     'Vulkan.Core10.FundamentalTypes.TRUE', then the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutput Fragment Output Interface>---     /must/ contain a variable for the alpha @Component@ word in---     @Location@ 0 at @Index@ 0------ -   #VUID-vkCmdDrawIndexedIndirect-None-07625# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToOneEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-08655# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-alphaToOne alphaToOne>---     feature is enabled, and a shader object is bound to any graphics---     stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToOneEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-07626# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLogicOpEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-08656# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>---     feature is enabled, and a shader object is bound to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'---     stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLogicOpEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-07627# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-08657# If a shader object is---     bound to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'---     stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-07628# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-08658# If a shader object is---     bound to any graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'---     for any attachment set that attachment’s value in---     @pColorBlendEnables@ to 'Vulkan.Core10.FundamentalTypes.TRUE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-07629# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-08659# If a shader object is---     bound to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'---     stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-07630# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_STREAM_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-08660# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryStreams geometryStreams>---     feature is enabled, and a shader object is bound to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'---     stage, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-07631# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-08661# If the---     @VK_EXT_conservative_rasterization@ extension is enabled, and a---     shader object is bound to any graphics stage, and the most recent---     call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-07632# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetExtraPrimitiveOverestimationSizeEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-08662# If the---     @VK_EXT_conservative_rasterization@ extension is enabled, and a---     shader object is bound to any graphics stage, and the most recent---     call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'---     in the current command buffer set @conservativeRasterizationMode@ to---     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT',---     then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetExtraPrimitiveOverestimationSizeEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-07633# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-08663# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipEnable depthClipEnable>---     feature is enabled, and a shader object is bound to any graphics---     stage, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-07634# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-08664# If the---     @VK_EXT_sample_locations@ extension is enabled, and a shader object---     is bound to any graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-07635# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-07636# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetProvokingVertexModeEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-08665# If the---     @VK_EXT_provoking_vertex@ extension is enabled, and a shader object---     is bound to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'---     stage, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetProvokingVertexModeEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-07637# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-08666# If the---     @VK_EXT_line_rasterization@ extension is enabled, and a shader---     object is bound to any graphics stage, and the most recent call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'---     in the current command buffer set @polygonMode@ to---     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-08667# If the---     @VK_EXT_line_rasterization@ extension is enabled, and a shader---     object is bound to the vertex stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'---     in the current command buffer set @primitiveTopology@ to any line---     topology, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-08668# If the---     @VK_EXT_line_rasterization@ extension is enabled, and a shader---     object that outputs line primitives is bound to the tessellation---     evaluation or geometry stage, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-07638# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-08669# If the---     @VK_EXT_line_rasterization@ extension is enabled, and a shader---     object is bound to any graphics stage, and the most recent call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'---     in the current command buffer set @polygonMode@ to---     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_LINE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-08670# If the---     @VK_EXT_line_rasterization@ extension is enabled, and a shader---     object is bound to the vertex stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'---     in the current command buffer set @primitiveTopology@ to any line---     topology, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-08671# If the---     @VK_EXT_line_rasterization@ extension is enabled, and a shader---     object that outputs line primitives is bound to the tessellation---     evaluation or geometry stage, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-07849# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-08672# If the---     @VK_EXT_line_rasterization@ extension is enabled, and a shader---     object is bound to any graphics stage, and the most recent call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'---     in the current command buffer set @stippledLineEnable@ to---     'Vulkan.Core10.FundamentalTypes.TRUE', then---     'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-07639# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipNegativeOneToOneEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-08673# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClipControl depthClipControl>---     feature is enabled, and a shader object is bound to any graphics---     stage, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipNegativeOneToOneEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-07640# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportWScalingEnableNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-08674# If the---     @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader---     object is bound to any graphics stage, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportWScalingEnableNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-07641# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportSwizzleNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-08675# If the---     @VK_NV_viewport_swizzle@ extension is enabled, and a shader object---     is bound to any graphics stage, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportSwizzleNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-07642# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-08676# If the---     @VK_NV_fragment_coverage_to_color@ extension is enabled, and a---     shader object is bound to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'---     stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-07643# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-08677# If the---     @VK_NV_fragment_coverage_to_color@ extension is enabled, and a---     shader object is bound to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'---     stage, and the most recent call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'---     in the current command buffer set @coverageToColorEnable@ to---     'Vulkan.Core10.FundamentalTypes.TRUE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-07644# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-08678# If the---     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader---     object is bound to any graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-07645# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-08679# If the---     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader---     object is bound to any graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV'---     in the current command buffer set coverageModulationMode to any---     value other than---     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.COVERAGE_MODULATION_MODE_NONE_NV',---     then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-07646# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-08680# If the---     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader---     object is bound to any graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'---     in the current command buffer set @coverageModulationTableEnable@ to---     'Vulkan.Core10.FundamentalTypes.TRUE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-07647# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-pipelineFragmentShadingRate-09238# If---     the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate>---     feature is enabled, and a shader object is bound to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'---     stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set rasterizerDiscardEnable to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'---     must have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-08681# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>---     feature is enabled, and a shader object is bound to any graphics---     stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-07648# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-08682# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-representativeFragmentTest representativeFragmentTest>---     feature is enabled, and a shader object is bound to any graphics---     stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-07649# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-08683# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-coverageReductionMode coverageReductionMode>---     feature is enabled, and a shader object is bound to any graphics---     stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-pColorBlendEnables-07470# If the---     bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'---     state enabled and the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'---     set @pColorBlendEnables@ for any attachment to---     'Vulkan.Core10.FundamentalTypes.TRUE', then for those attachments in---     the subpass the corresponding image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT'------ -   #VUID-vkCmdDrawIndexedIndirect-rasterizationSamples-07471# If the---     bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'---     state enabled, and the current subpass does not use any color---     and\/or depth\/stencil attachments, then the @rasterizationSamples@---     in the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'---     /must/ follow the rules for a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-noattachments zero-attachment subpass>------ -   #VUID-vkCmdDrawIndexedIndirect-samples-07472# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT'---     state enabled and the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'---     state disabled, then the @samples@ parameter in the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'---     /must/ be greater or equal to the---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@---     parameter used to create the bound graphics pipeline------ -   #VUID-vkCmdDrawIndexedIndirect-samples-07473# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT'---     state and---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'---     states enabled, then the @samples@ parameter in the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'---     /must/ be greater or equal to the @rasterizationSamples@ parameter---     in the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'------ -   #VUID-vkCmdDrawIndexedIndirect-rasterizationSamples-07474# If the---     bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'---     state enabled, and neither the @VK_AMD_mixed_attachment_samples@ nor---     the @VK_NV_framebuffer_mixed_samples@ extensions are enabled, then---     the @rasterizationSamples@ in the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'---     /must/ be the same as the current subpass color and\/or---     depth\/stencil attachments------ -   #VUID-vkCmdDrawIndexedIndirect-None-09211# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'---     state enabled, or a shader object is bound to any graphics stage,---     and the current render pass instance includes a---     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'---     structure with @multisampledRenderToSingleSampledEnable@ equal to---     'Vulkan.Core10.FundamentalTypes.TRUE', then the---     @rasterizationSamples@ in the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'---     /must/ be the same as the @rasterizationSamples@ member of that---     structure------ -   #VUID-vkCmdDrawIndexedIndirect-firstAttachment-07476# If the bound---     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command, and the attachments specified by the---     @firstAttachment@ and @attachmentCount@ parameters of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'---     calls /must/ specify an enable for all active color attachments in---     the current subpass------ -   #VUID-vkCmdDrawIndexedIndirect-firstAttachment-07477# If the bound---     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command, and the attachments specified by the---     @firstAttachment@ and @attachmentCount@ parameters of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'---     calls /must/ specify the blend equations for all active color---     attachments in the current subpass where blending is enabled------ -   #VUID-vkCmdDrawIndexedIndirect-firstAttachment-07478# If the bound---     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command, and the attachments specified by the---     @firstAttachment@ and @attachmentCount@ parameters of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'---     calls /must/ specify the color write mask for all active color---     attachments in the current subpass------ -   #VUID-vkCmdDrawIndexedIndirect-firstAttachment-07479# If the bound---     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command, and the attachments specified by the---     @firstAttachment@ and @attachmentCount@ parameters of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'---     calls /must/ specify the advanced blend equations for all active---     color attachments in the current subpass where blending is enabled------ -   #VUID-vkCmdDrawIndexedIndirect-advancedBlendMaxColorAttachments-07480#---     If the bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT'---     and---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'---     dynamic states enabled and the last calls to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'---     and---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'---     have enabled advanced blending, then the number of active color---     attachments in the current subpass /must/ not exceed---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-advancedBlendMaxColorAttachments advancedBlendMaxColorAttachments>------ -   #VUID-vkCmdDrawIndexedIndirect-primitivesGeneratedQueryWithNonZeroStreams-07481#---     If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams primitivesGeneratedQueryWithNonZeroStreams>---     feature is not enabled and the---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'---     query is active, and the bound graphics pipeline was created with---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_STREAM_EXT'---     state enabled, the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT'---     /must/ have set the @rasterizationStream@ to zero------ -   #VUID-vkCmdDrawIndexedIndirect-sampleLocationsPerPixel-07482# If the---     bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'---     state enabled and the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'---     state disabled, then the @sampleLocationsPerPixel@ member of---     @pSampleLocationsInfo@ in the last call to---     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'---     /must/ equal the @rasterizationSamples@ member of the---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'---     structure the bound graphics pipeline has been created with------ -   #VUID-vkCmdDrawIndexedIndirect-sampleLocationsPerPixel-07483# If the---     bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'---     state enabled and the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'---     state enabled, then the @sampleLocationsPerPixel@ member of---     @pSampleLocationsInfo@ in the last call to---     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'---     /must/ equal the @rasterizationSamples@ parameter of the last call---     to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'------ -   #VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-07484# If the---     bound graphics pipeline was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'---     state enabled, and @sampleLocationsEnable@ was---     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',---     and the current subpass has a depth\/stencil attachment, then that---     attachment /must/ have been created with the---     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT'---     bit set------ -   #VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-07485# If the---     bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'---     state enabled and the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'---     state enabled, and if @sampleLocationsEnable@ was---     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',---     then the @sampleLocationsInfo.sampleLocationGridSize.width@ in the---     last call to---     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'---     /must/ evenly divide---     'Vulkan.Extensions.VK_EXT_sample_locations.MultisamplePropertiesEXT'::@sampleLocationGridSize.width@---     as returned by---     'Vulkan.Extensions.VK_EXT_sample_locations.getPhysicalDeviceMultisamplePropertiesEXT'---     with a @samples@ parameter equaling @rasterizationSamples@------ -   #VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-07486# If the---     bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'---     state enabled and the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'---     state enabled, and if @sampleLocationsEnable@ was---     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',---     then the @sampleLocationsInfo.sampleLocationGridSize.height@ in the---     last call to---     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'---     /must/ evenly divide---     'Vulkan.Extensions.VK_EXT_sample_locations.MultisamplePropertiesEXT'::@sampleLocationGridSize.height@---     as returned by---     'Vulkan.Extensions.VK_EXT_sample_locations.getPhysicalDeviceMultisamplePropertiesEXT'---     with a @samples@ parameter equaling @rasterizationSamples@------ -   #VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-07487# If the---     bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'---     state enabled, and if @sampleLocationsEnable@ was---     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',---     the fragment shader code /must/ not statically use the extended---     instruction @InterpolateAtSample@------ -   #VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-07936# If the---     bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'---     state disabled and the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'---     state enabled, the @sampleLocationsEnable@ member of a---     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@---     in the bound graphics pipeline is---     'Vulkan.Core10.FundamentalTypes.TRUE' or---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'---     state enabled, then,---     @sampleLocationsInfo.sampleLocationGridSize.width@ /must/ evenly---     divide---     'Vulkan.Extensions.VK_EXT_sample_locations.MultisamplePropertiesEXT'::@sampleLocationGridSize.width@---     as returned by---     'Vulkan.Extensions.VK_EXT_sample_locations.getPhysicalDeviceMultisamplePropertiesEXT'---     with a @samples@ parameter equaling the value of---     @rasterizationSamples@ in the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'------ -   #VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-07937# If the---     bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'---     state disabled and the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'---     state enabled, the @sampleLocationsEnable@ member of a---     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@---     in the bound graphics pipeline is---     'Vulkan.Core10.FundamentalTypes.TRUE' or---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'---     state enabled, then,---     @sampleLocationsInfo.sampleLocationGridSize.height@ /must/ evenly---     divide---     'Vulkan.Extensions.VK_EXT_sample_locations.MultisamplePropertiesEXT'::@sampleLocationGridSize.height@---     as returned by---     'Vulkan.Extensions.VK_EXT_sample_locations.getPhysicalDeviceMultisamplePropertiesEXT'---     with a @samples@ parameter equaling the value of---     @rasterizationSamples@ in the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'------ -   #VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-07938# If the---     bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'---     state disabled and the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'---     state enabled, the @sampleLocationsEnable@ member of a---     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@---     in the bound graphics pipeline is---     'Vulkan.Core10.FundamentalTypes.TRUE' or---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'---     state enabled, then, @sampleLocationsInfo.sampleLocationsPerPixel@---     /must/ equal @rasterizationSamples@ in the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'------ -   #VUID-vkCmdDrawIndexedIndirect-coverageModulationTableEnable-07488#---     If the bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV'---     state enabled and the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'---     set @coverageModulationTableEnable@ to---     'Vulkan.Core10.FundamentalTypes.TRUE', then the---     @coverageModulationTableCount@ parameter in the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV'---     /must/ equal the current @rasterizationSamples@ divided by the---     number of color samples in the current subpass------ -   #VUID-vkCmdDrawIndexedIndirect-rasterizationSamples-07489# If the---     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and if---     current subpass has a depth\/stencil attachment and depth test,---     stencil test, or depth bounds test are enabled in the currently---     bound pipeline state, then the current @rasterizationSamples@ /must/---     be the same as the sample count of the depth\/stencil attachment------ -   #VUID-vkCmdDrawIndexedIndirect-coverageToColorEnable-07490# If the---     bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV'---     state enabled and the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'---     set the @coverageToColorEnable@ to---     'Vulkan.Core10.FundamentalTypes.TRUE', then the current subpass---     /must/ have a color attachment at the location selected by the last---     call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV'---     @coverageToColorLocation@, with a---     'Vulkan.Core10.Enums.Format.Format' of---     'Vulkan.Core10.Enums.Format.FORMAT_R8_UINT',---     'Vulkan.Core10.Enums.Format.FORMAT_R8_SINT',---     'Vulkan.Core10.Enums.Format.FORMAT_R16_UINT',---     'Vulkan.Core10.Enums.Format.FORMAT_R16_SINT',---     'Vulkan.Core10.Enums.Format.FORMAT_R32_UINT', or---     'Vulkan.Core10.Enums.Format.FORMAT_R32_SINT'------ -   #VUID-vkCmdDrawIndexedIndirect-coverageReductionMode-07491# If this---     @VK_NV_coverage_reduction_mode@ extension is enabled, the bound---     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV'---     and---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'---     states enabled, the current coverage reduction mode---     @coverageReductionMode@, then the current @rasterizationSamples@,---     and the sample counts for the color and depth\/stencil attachments---     (if the subpass has them) /must/ be a valid combination returned by---     'Vulkan.Extensions.VK_NV_coverage_reduction_mode.getPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV'------ -   #VUID-vkCmdDrawIndexedIndirect-viewportCount-07492# If the bound---     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'---     dynamic state enabled, but not the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV'---     dynamic state enabled, then the bound graphics pipeline /must/ have---     been created with---     'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'::@viewportCount@---     greater or equal to the @viewportCount@ parameter in the last call---     to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'------ -   #VUID-vkCmdDrawIndexedIndirect-viewportCount-07493# If the bound---     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'---     and---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV'---     dynamic states enabled then the @viewportCount@ parameter in the---     last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportSwizzleNV'---     /must/ be greater than or equal to the @viewportCount@ parameter in---     the last call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'------ -   #VUID-vkCmdDrawIndexedIndirect-rasterizationSamples-07494# If the---     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and if the---     current subpass has any color attachments and @rasterizationSamples@---     of the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'---     is greater than the number of color samples, then the pipeline---     @sampleShadingEnable@ /must/ be---     'Vulkan.Core10.FundamentalTypes.FALSE'------ -   #VUID-vkCmdDrawIndexedIndirect-stippledLineEnable-07495# If the---     bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'---     or---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'---     dynamic states enabled, and if the current @stippledLineEnable@---     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current---     @lineRasterizationMode@ state is---     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_EXT',---     then the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>---     feature /must/ be enabled------ -   #VUID-vkCmdDrawIndexedIndirect-stippledLineEnable-07496# If the---     bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'---     or---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'---     dynamic states enabled, and if the current @stippledLineEnable@---     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current---     @lineRasterizationMode@ state is---     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_BRESENHAM_EXT',---     then the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>---     feature /must/ be enabled------ -   #VUID-vkCmdDrawIndexedIndirect-stippledLineEnable-07497# If the---     bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'---     or---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'---     dynamic states enabled, and if the current @stippledLineEnable@---     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current---     @lineRasterizationMode@ state is---     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT',---     then the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>---     feature /must/ be enabled------ -   #VUID-vkCmdDrawIndexedIndirect-stippledLineEnable-07498# If the---     bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'---     or---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'---     dynamic states enabled, and if the current @stippledLineEnable@---     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current---     @lineRasterizationMode@ state is---     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_DEFAULT_EXT',---     then the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>---     feature /must/ be enabled and---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@strictLines@---     /must/ be 'Vulkan.Core10.FundamentalTypes.TRUE'------ -   #VUID-vkCmdDrawIndexedIndirect-conservativePointAndLineRasterization-07499#---     If the bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT'---     dynamic state enabled,---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-conservativePointAndLineRasterization conservativePointAndLineRasterization>---     is not supported, and the effective primitive topology output by the---     last pre-rasterization shader stage is a line or point, then the---     @conservativeRasterizationMode@ set by the last call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'---     /must/ be---     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT'------ -   #VUID-vkCmdDrawIndexedIndirect-stage-07073# If the currently bound---     pipeline was created with the---     'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@---     member of an element of---     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pStages@ set---     to---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT',---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT',---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'---     or---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT',---     then---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-mesh-shader Mesh Shader Queries>---     /must/ not be active------ -   #VUID-vkCmdDrawIndexedIndirect-None-08877# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'---     dynamic state---     'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-07850# If dynamic state was---     inherited from---     'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV',---     it /must/ be set in the current command buffer prior to this drawing---     command------ -   #VUID-vkCmdDrawIndexedIndirect-None-08684# If there is no bound---     graphics pipeline,---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/---     have been called in the current command buffer with @pStages@ with---     an element of---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'------ -   #VUID-vkCmdDrawIndexedIndirect-None-08685# If there is no bound---     graphics pipeline, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>---     feature is enabled,---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/---     have been called in the current command buffer with @pStages@ with---     an element of---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT'------ -   #VUID-vkCmdDrawIndexedIndirect-None-08686# If there is no bound---     graphics pipeline, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>---     feature is enabled,---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/---     have been called in the current command buffer with @pStages@ with---     an element of---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'------ -   #VUID-vkCmdDrawIndexedIndirect-None-08687# If there is no bound---     graphics pipeline, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader>---     feature is enabled,---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/---     have been called in the current command buffer with @pStages@ with---     an element of---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'------ -   #VUID-vkCmdDrawIndexedIndirect-None-08688# If there is no bound---     graphics pipeline,---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/---     have been called in the current command buffer with @pStages@ with---     an element of---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'------ -   #VUID-vkCmdDrawIndexedIndirect-None-08689# If there is no bound---     graphics pipeline, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>---     feature is enabled,---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/---     have been called in the current command buffer with @pStages@ with---     an element of---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'------ -   #VUID-vkCmdDrawIndexedIndirect-None-08690# If there is no bound---     graphics pipeline, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>---     feature is enabled,---     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/---     have been called in the current command buffer with @pStages@ with---     an element of---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'------ -   #VUID-vkCmdDrawIndexedIndirect-None-08693# If there is no bound---     graphics pipeline, and at least one of the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>---     and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>---     features is enabled, one of the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' or---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'---     stages /must/ have a valid 'Vulkan.Extensions.Handles.ShaderEXT'---     bound, and the other /must/ have no---     'Vulkan.Extensions.Handles.ShaderEXT' bound------ -   #VUID-vkCmdDrawIndexedIndirect-None-08694# If there is no bound---     graphics pipeline, and both the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>---     and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>---     features are enabled, and a valid---     'Vulkan.Extensions.Handles.ShaderEXT' is bound the to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'---     stage, and that 'Vulkan.Extensions.Handles.ShaderEXT' was created---     without the---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_NO_TASK_SHADER_BIT_EXT'---     flag, a valid 'Vulkan.Extensions.Handles.ShaderEXT' /must/ be bound---     to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'---     stage------ -   #VUID-vkCmdDrawIndexedIndirect-None-08695# If there is no bound---     graphics pipeline, and both the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>---     and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>---     features are enabled, and a valid---     'Vulkan.Extensions.Handles.ShaderEXT' is bound the to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'---     stage, and that 'Vulkan.Extensions.Handles.ShaderEXT' was created---     with the---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_NO_TASK_SHADER_BIT_EXT'---     flag, there /must/ be no 'Vulkan.Extensions.Handles.ShaderEXT' bound---     to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'---     stage------ -   #VUID-vkCmdDrawIndexedIndirect-None-08696# If there is no bound---     graphics pipeline, and a valid 'Vulkan.Extensions.Handles.ShaderEXT'---     is bound to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'---     stage, there /must/ be no 'Vulkan.Extensions.Handles.ShaderEXT'---     bound to either the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'---     stage or the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'---     stage------ -   #VUID-vkCmdDrawIndexedIndirect-None-08698# If any graphics shader is---     bound which was created with the---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'---     flag, then all shaders created with the---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'---     flag in the same---     'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call---     /must/ also be bound------ -   #VUID-vkCmdDrawIndexedIndirect-None-08699# If any graphics shader is---     bound which was created with the---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'---     flag, any stages in between stages whose shaders which did not---     create a shader with the---     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'---     flag as part of the same---     'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call---     /must/ not have any 'Vulkan.Extensions.Handles.ShaderEXT' bound------ -   #VUID-vkCmdDrawIndexedIndirect-None-08878# All bound graphics shader---     objects /must/ have been created with identical or identically---     defined push constant ranges------ -   #VUID-vkCmdDrawIndexedIndirect-None-08879# All bound graphics shader---     objects /must/ have been created with identical or identically---     defined arrays of descriptor set layouts------ -   #VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-09372# If the---     current render pass instance was begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'---     and a---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@---     equal to @1@, a color attachment with a resolve mode of---     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',---     and a fragment shader is bound, it /must/ not declare the---     @DepthReplacing@ or @StencilRefReplacingEXT@ execution modes------ -   #VUID-vkCmdDrawIndexedIndirect-None-08880# If a shader object is---     bound to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'---     stage and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFeedbackLoopDynamicState attachmentFeedbackLoopDynamicState>---     feature is enabled on the device, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE'---     'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-pDynamicStates-08715# If the bound---     graphics pipeline state includes a fragment shader stage, was---     created with---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'---     set in---     'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@,---     and the fragment shader declares the @EarlyFragmentTests@ execution---     mode and uses @OpDepthAttachmentReadEXT@, the @depthWriteEnable@---     parameter in the last call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'---     /must/ be 'Vulkan.Core10.FundamentalTypes.FALSE'------ -   #VUID-vkCmdDrawIndexedIndirect-pDynamicStates-08716# If the bound---     graphics pipeline state includes a fragment shader stage, was---     created with---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK'---     set in---     'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@,---     and the fragment shader declares the @EarlyFragmentTests@ execution---     mode and uses @OpStencilAttachmentReadEXT@, the @writeMask@---     parameter in the last call to 'cmdSetStencilWriteMask' /must/ be @0@------ -   #VUID-vkCmdDrawIndexedIndirect-None-09116# If a shader object is---     bound to any graphics stage or the currently bound graphics pipeline---     was created with---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT',---     and the format of any color attachment is---     'Vulkan.Core10.Enums.Format.FORMAT_E5B9G9R9_UFLOAT_PACK32', the---     corresponding element of the @pColorWriteMasks@ parameter of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'---     /must/ either include all of---     'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_R_BIT',---     'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_G_BIT',---     and---     'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_B_BIT',---     or none of them------ -   #VUID-vkCmdDrawIndexedIndirect-maxFragmentDualSrcAttachments-09239#---     If---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-blending blending>---     is enabled for any attachment where either the source or destination---     blend factors for that attachment---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-dsb use the secondary color input>,---     the maximum value of @Location@ for any output attachment---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-staticuse statically used>---     in the @Fragment@ @Execution@ @Model@ executed by this command---     /must/ be less than---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxFragmentDualSrcAttachments maxFragmentDualSrcAttachments>------ -   #VUID-vkCmdDrawIndexedIndirect-None-04007# All vertex input bindings---     accessed via vertex input variables declared in the vertex shader---     entry point’s interface /must/ have either valid or---     'Vulkan.Core10.APIConstants.NULL_HANDLE' buffers bound------ -   #VUID-vkCmdDrawIndexedIndirect-None-04008# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>---     feature is not enabled, all vertex input bindings accessed via---     vertex input variables declared in the vertex shader entry point’s---     interface /must/ not be 'Vulkan.Core10.APIConstants.NULL_HANDLE'------ -   #VUID-vkCmdDrawIndexedIndirect-None-02721# For a given vertex buffer---     binding, any attribute data fetched /must/ be entirely contained---     within the corresponding vertex buffer binding, as described in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input ???>------ -   #VUID-vkCmdDrawIndexedIndirect-None-07842# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY'---     dynamic state enabled then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-dynamicPrimitiveTopologyUnrestricted-07500#---     If the bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY'---     dynamic state enabled and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-dynamicPrimitiveTopologyUnrestricted dynamicPrimitiveTopologyUnrestricted>---     is 'Vulkan.Core10.FundamentalTypes.FALSE', then the---     @primitiveTopology@ parameter of---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'---     /must/ be of the same---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-primitive-topology-class topology class>---     as the pipeline---     'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@---     state------ -   #VUID-vkCmdDrawIndexedIndirect-None-04912# If the bound graphics---     pipeline was created with both the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'---     and---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'---     dynamic states enabled, then---     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'---     /must/ have been called in the current command buffer prior to this---     draw command------ -   #VUID-vkCmdDrawIndexedIndirect-pStrides-04913# If the bound graphics---     pipeline was created with the---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'---     dynamic state enabled, but not the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'---     dynamic state enabled, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'---     /must/ have been called in the current command buffer prior to this---     draw command, and the @pStrides@ parameter of---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'---     /must/ not be @NULL@------ -   #VUID-vkCmdDrawIndexedIndirect-None-08881# If a shader object is---     bound to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'---     stage, then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-04914# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'---     dynamic state enabled, then---     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'---     /must/ have been called in the current command buffer prior to this---     draw command------ -   #VUID-vkCmdDrawIndexedIndirect-Input-07939# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'---     dynamic state enabled, then all variables with the @Input@ storage---     class decorated with @Location@ in the @Vertex@ @Execution@ @Model@---     @OpEntryPoint@ /must/ contain a location in---     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@location@------ -   #VUID-vkCmdDrawIndexedIndirect-Input-08734# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'---     dynamic state enabled, then the numeric type associated with all---     @Input@ variables of the corresponding @Location@ in the @Vertex@---     @Execution@ @Model@ @OpEntryPoint@ /must/ be the same as---     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@------ -   #VUID-vkCmdDrawIndexedIndirect-format-08936# If there is a shader---     object bound to a graphics stage or the currently bound graphics---     pipeline was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'---     dynamic state enabled, and---     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@---     has a 64-bit component, then the scalar width associated with all---     @Input@ variables of the corresponding @Location@ in the @Vertex@---     @Execution@ @Model@ @OpEntryPoint@ /must/ be 64-bit------ -   #VUID-vkCmdDrawIndexedIndirect-format-08937# If there is a shader---     object bound to a graphics stage or the currently bound graphics---     pipeline was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'---     dynamic state enabled, and the scalar width associated with a---     @Location@ decorated @Input@ variable in the @Vertex@ @Execution@---     @Model@ @OpEntryPoint@ is 64-bit, then the corresponding---     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@---     /must/ have a 64-bit component------ -   #VUID-vkCmdDrawIndexedIndirect-None-09203# If there is a shader---     object bound to a graphics stage or the currently bound graphics---     pipeline was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'---     dynamic state enabled, and---     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@---     has a 64-bit component, then all @Input@ variables at the---     corresponding @Location@ in the @Vertex@ @Execution@ @Model@---     @OpEntryPoint@ /must/ not use components that are not present in the---     format------ -   #VUID-vkCmdDrawIndexedIndirect-None-08882# If a shader object is---     bound to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'---     stage, then---     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-04875# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-08883# If a shader object is---     bound to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'---     stage, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-None-04879# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE'---     dynamic state enabled then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnable'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-rasterizerDiscardEnable-08884# If a---     shader object is bound to any graphics stage, and the most recent---     call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE',---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnable'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirect-stage-06481# The bound graphics---     pipeline /must/ not have been created with the---     'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@---     member of an element of---     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pStages@ set---     to---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'---     or---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'------ -   #VUID-vkCmdDrawIndexedIndirect-None-08885# There /must/ be no shader---     object bound to either of the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'---     or---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'---     stages------ -   #VUID-vkCmdDrawIndexedIndirect-buffer-02708# If @buffer@ is---     non-sparse then it /must/ be bound completely and contiguously to a---     single 'Vulkan.Core10.Handles.DeviceMemory' object------ -   #VUID-vkCmdDrawIndexedIndirect-buffer-02709# @buffer@ /must/ have---     been created with the---     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDIRECT_BUFFER_BIT'---     bit set------ -   #VUID-vkCmdDrawIndexedIndirect-offset-02710# @offset@ /must/ be a---     multiple of @4@------ -   #VUID-vkCmdDrawIndexedIndirect-commandBuffer-02711# @commandBuffer@---     /must/ not be a protected command buffer------ -   #VUID-vkCmdDrawIndexedIndirect-drawCount-02718# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multiDrawIndirect multiDrawIndirect>---     feature is not enabled, @drawCount@ /must/ be @0@ or @1@------ -   #VUID-vkCmdDrawIndexedIndirect-drawCount-02719# @drawCount@ /must/---     be less than or equal to---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxDrawIndirectCount@------ -   #VUID-vkCmdDrawIndexedIndirect-None-07312# An index buffer /must/ be---     bound------ -   #VUID-vkCmdDrawIndexedIndirect-robustBufferAccess2-07825# If---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2>---     is not enabled, (@indexSize@ × (@firstIndex@ + @indexCount@) +---     @offset@) /must/ be less than or equal to the size of the bound---     index buffer, with @indexSize@ being based on the type specified by---     @indexType@, where the index buffer, @indexType@, and @offset@ are---     specified via 'cmdBindIndexBuffer'------ -   #VUID-vkCmdDrawIndexedIndirect-drawCount-00528# If @drawCount@ is---     greater than @1@, @stride@ /must/ be a multiple of @4@ and /must/ be---     greater than or equal to---     @sizeof@('Vulkan.Core10.OtherTypes.DrawIndexedIndirectCommand')------ -   #VUID-vkCmdDrawIndexedIndirect-drawCount-00539# If @drawCount@ is---     equal to @1@, (@offset@ +---     @sizeof@('Vulkan.Core10.OtherTypes.DrawIndexedIndirectCommand'))---     /must/ be less than or equal to the size of @buffer@------ -   #VUID-vkCmdDrawIndexedIndirect-drawCount-00540# If @drawCount@ is---     greater than @1@, (@stride@ × (@drawCount@ - 1) + @offset@ +---     @sizeof@('Vulkan.Core10.OtherTypes.DrawIndexedIndirectCommand'))---     /must/ be less than or equal to the size of @buffer@------ == Valid Usage (Implicit)------ -   #VUID-vkCmdDrawIndexedIndirect-commandBuffer-parameter#---     @commandBuffer@ /must/ be a valid---     'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdDrawIndexedIndirect-buffer-parameter# @buffer@ /must/ be---     a valid 'Vulkan.Core10.Handles.Buffer' handle------ -   #VUID-vkCmdDrawIndexedIndirect-commandBuffer-recording#---     @commandBuffer@ /must/ be in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>------ -   #VUID-vkCmdDrawIndexedIndirect-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics operations------ -   #VUID-vkCmdDrawIndexedIndirect-renderpass# This command /must/ only---     be called inside of a render pass instance------ -   #VUID-vkCmdDrawIndexedIndirect-videocoding# This command /must/ only---     be called outside of a video coding scope------ -   #VUID-vkCmdDrawIndexedIndirect-commonparent# Both of @buffer@, and---     @commandBuffer@ /must/ have been created, allocated, or retrieved---     from the same 'Vulkan.Core10.Handles.Device'------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |--- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+--- | Primary                                                                                                                    | Inside                                                                                                                 | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',--- 'Vulkan.Core10.FundamentalTypes.DeviceSize'-cmdDrawIndexedIndirect :: forall io-                        . (MonadIO io)-                       => -- | @commandBuffer@ is the command buffer into which the command is-                          -- recorded.-                          CommandBuffer-                       -> -- | @buffer@ is the buffer containing draw parameters.-                          Buffer-                       -> -- | @offset@ is the byte offset into @buffer@ where parameters begin.-                          ("offset" ::: DeviceSize)-                       -> -- | @drawCount@ is the number of draws to execute, and /can/ be zero.-                          ("drawCount" ::: Word32)-                       -> -- | @stride@ is the byte stride between successive sets of draw parameters.-                          ("stride" ::: Word32)-                       -> io ()-cmdDrawIndexedIndirect commandBuffer-                         buffer-                         offset-                         drawCount-                         stride = liftIO $ do-  let vkCmdDrawIndexedIndirectPtr = pVkCmdDrawIndexedIndirect (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  unless (vkCmdDrawIndexedIndirectPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDrawIndexedIndirect is null" Nothing Nothing-  let vkCmdDrawIndexedIndirect' = mkVkCmdDrawIndexedIndirect vkCmdDrawIndexedIndirectPtr-  traceAroundEvent "vkCmdDrawIndexedIndirect" (vkCmdDrawIndexedIndirect'-                                                 (commandBufferHandle (commandBuffer))-                                                 (buffer)-                                                 (offset)-                                                 (drawCount)-                                                 (stride))-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdDispatch-  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Word32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Word32 -> Word32 -> IO ()---- | vkCmdDispatch - Dispatch compute work items------ = Description------ When the command is executed, a global workgroup consisting of--- @groupCountX@ × @groupCountY@ × @groupCountZ@ local workgroups is--- assembled.------ == Valid Usage------ -   #VUID-vkCmdDispatch-magFilter-04553# If a---     'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or---     @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and---     @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE' is---     used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of---     this command, then the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'------ -   #VUID-vkCmdDispatch-mipmapMode-04770# If a---     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to---     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'---     and @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE'---     is used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of---     this command, then the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'------ -   #VUID-vkCmdDispatch-None-06479# If a---     'Vulkan.Core10.Handles.ImageView' is sampled with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-depth-compare-operation depth comparison>,---     the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT'------ -   #VUID-vkCmdDispatch-None-02691# If a---     'Vulkan.Core10.Handles.ImageView' is accessed using atomic---     operations as a result of this command, then the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT'------ -   #VUID-vkCmdDispatch-None-07888# If a---     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER'---     descriptor is accessed using atomic operations as a result of this---     command, then the storage texel buffer’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-buffer-view-format-features format features>---     /must/ contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT'------ -   #VUID-vkCmdDispatch-None-02692# If a---     'Vulkan.Core10.Handles.ImageView' is sampled with---     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this---     command, then the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'------ -   #VUID-vkCmdDispatch-None-02693# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_filter_cubic VK_EXT_filter_cubic>---     extension is not enabled and any 'Vulkan.Core10.Handles.ImageView'---     is sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a---     result of this command, it /must/ not have a---     'Vulkan.Core10.Enums.ImageViewType.ImageViewType' of---     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D',---     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE', or---     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY'------ -   #VUID-vkCmdDispatch-filterCubic-02694# Any---     'Vulkan.Core10.Handles.ImageView' being sampled with---     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this---     command /must/ have a---     'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that---     supports cubic filtering, as specified by---     'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubic@---     returned by---     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'------ -   #VUID-vkCmdDispatch-filterCubicMinmax-02695# Any---     'Vulkan.Core10.Handles.ImageView' being sampled with---     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' with a reduction mode---     of either---     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'---     or---     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'---     as a result of this command /must/ have a---     'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that---     supports cubic filtering together with minmax filtering, as---     specified by---     'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubicMinmax@---     returned by---     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'------ -   #VUID-vkCmdDispatch-cubicRangeClamp-09212# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-range-clamp cubicRangeClamp>---     feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView'---     being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as---     a result of this command------     [/must/ not have a 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo']---         @reductionMode@ equal to---         'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM'------ -   #VUID-vkCmdDispatch-reductionMode-09213# Any---     'Vulkan.Core10.Handles.ImageView' being sampled with a---     'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'::@reductionMode@---     equal to---     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM'---     as a result of this command /must/ sample with---     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT'------ -   #VUID-vkCmdDispatch-selectableCubicWeights-09214# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-weight-selection selectableCubicWeights>---     feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView'---     being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as---     a result of this command /must/ have---     'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.SamplerCubicWeightsCreateInfoQCOM'::@cubicWeights@---     equal to---     'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM'------ -   #VUID-vkCmdDispatch-flags-02696# Any 'Vulkan.Core10.Handles.Image'---     created with a 'Vulkan.Core10.Image.ImageCreateInfo'::@flags@---     containing---     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_CORNER_SAMPLED_BIT_NV'---     sampled as a result of this command /must/ only be sampled using a---     'Vulkan.Core10.Enums.SamplerAddressMode.SamplerAddressMode' of---     'Vulkan.Core10.Enums.SamplerAddressMode.SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE'------ -   #VUID-vkCmdDispatch-OpTypeImage-07027# For any---     'Vulkan.Core10.Handles.ImageView' being written as a storage image---     where the image format field of the @OpTypeImage@ is @Unknown@, the---     view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'------ -   #VUID-vkCmdDispatch-OpTypeImage-07028# For any---     'Vulkan.Core10.Handles.ImageView' being read as a storage image---     where the image format field of the @OpTypeImage@ is @Unknown@, the---     view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT'------ -   #VUID-vkCmdDispatch-OpTypeImage-07029# For any---     'Vulkan.Core10.Handles.BufferView' being written as a storage texel---     buffer where the image format field of the @OpTypeImage@ is---     @Unknown@, the view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>---     /must/ contain---     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'------ -   #VUID-vkCmdDispatch-OpTypeImage-07030# Any---     'Vulkan.Core10.Handles.BufferView' being read as a storage texel---     buffer where the image format field of the @OpTypeImage@ is---     @Unknown@ then the view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>---     /must/ contain---     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT'------ -   #VUID-vkCmdDispatch-None-08600# For each set /n/ that is statically---     used by---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,---     a descriptor set /must/ have been bound to /n/ at the same pipeline---     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is---     compatible for set /n/, with the---     'Vulkan.Core10.Handles.PipelineLayout' or---     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>------ -   #VUID-vkCmdDispatch-None-08601# For each push constant that is---     statically used by---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,---     a push constant value /must/ have been set for the same pipeline---     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is---     compatible for push constants, with the---     'Vulkan.Core10.Handles.PipelineLayout' or---     'Vulkan.Core10.Handles.DescriptorSetLayout' and---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>------ -   #VUID-vkCmdDispatch-maintenance4-08602# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance4 maintenance4>---     feature is not enabled, then for each push constant that is---     statically used by---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,---     a push constant value /must/ have been set for the same pipeline---     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is---     compatible for push constants, with the---     'Vulkan.Core10.Handles.PipelineLayout' or---     'Vulkan.Core10.Handles.DescriptorSetLayout' and---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>------ -   #VUID-vkCmdDispatch-None-08114# Descriptors in each bound descriptor---     set, specified via 'cmdBindDescriptorSets', /must/ be valid if they---     are statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to---     the pipeline bind point used by this command and the bound---     'Vulkan.Core10.Handles.Pipeline' was not created with---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'------ -   #VUID-vkCmdDispatch-None-08115# If the descriptors used by the---     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point---     were specified via 'cmdBindDescriptorSets', the bound---     'Vulkan.Core10.Handles.Pipeline' /must/ have been created without---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'------ -   #VUID-vkCmdDispatch-None-08116# Descriptors in bound descriptor---     buffers, specified via---     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',---     /must/ be valid if they are dynamically used by the---     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point---     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'---     was created with---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'------ -   #VUID-vkCmdDispatch-None-08604# Descriptors in bound descriptor---     buffers, specified via---     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',---     /must/ be valid if they are dynamically used by any---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding---     to the pipeline bind point used by this command------ -   #VUID-vkCmdDispatch-None-08117# If the descriptors used by the---     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point---     were specified via---     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',---     the bound 'Vulkan.Core10.Handles.Pipeline' /must/ have been created---     with---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'------ -   #VUID-vkCmdDispatch-None-08119# If a descriptor is dynamically used---     with a 'Vulkan.Core10.Handles.Pipeline' created with---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',---     the descriptor memory /must/ be resident------ -   #VUID-vkCmdDispatch-None-08605# If a descriptor is dynamically used---     with a 'Vulkan.Extensions.Handles.ShaderEXT' created with a---     'Vulkan.Core10.Handles.DescriptorSetLayout' that was created with---     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',---     the descriptor memory /must/ be resident------ -   #VUID-vkCmdDispatch-None-08606# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>---     feature is not enabled, a valid pipeline /must/ be bound to the---     pipeline bind point used by this command------ -   #VUID-vkCmdDispatch-None-08607# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>---     is enabled, either a valid pipeline /must/ be bound to the pipeline---     bind point used by this command, or a valid combination of valid and---     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be---     bound to every supported shader stage corresponding to the pipeline---     bind point used by this command------ -   #VUID-vkCmdDispatch-None-08608# If a pipeline is bound to the---     pipeline bind point used by this command, there /must/ not have been---     any calls to dynamic state setting commands for any state not---     specified as dynamic in the 'Vulkan.Core10.Handles.Pipeline' object---     bound to the pipeline bind point used by this command, since that---     pipeline was bound------ -   #VUID-vkCmdDispatch-None-08609# If the---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command or any---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding---     to the pipeline bind point used by this command accesses a---     'Vulkan.Core10.Handles.Sampler' object that uses unnormalized---     coordinates, that sampler /must/ not be used to sample from any---     'Vulkan.Core10.Handles.Image' with a---     'Vulkan.Core10.Handles.ImageView' of the type---     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D',---     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE',---     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D_ARRAY',---     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D_ARRAY' or---     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY', in---     any shader stage------ -   #VUID-vkCmdDispatch-None-08610# If the---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command or any---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding---     to the pipeline bind point used by this command accesses a---     'Vulkan.Core10.Handles.Sampler' object that uses unnormalized---     coordinates, that sampler /must/ not be used with any of the SPIR-V---     @OpImageSample*@ or @OpImageSparseSample*@ instructions with---     @ImplicitLod@, @Dref@ or @Proj@ in their name, in any shader stage------ -   #VUID-vkCmdDispatch-None-08611# If the---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command or any---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding---     to the pipeline bind point used by this command accesses a---     'Vulkan.Core10.Handles.Sampler' object that uses unnormalized---     coordinates, that sampler /must/ not be used with any of the SPIR-V---     @OpImageSample*@ or @OpImageSparseSample*@ instructions that---     includes a LOD bias or any offset values, in any shader stage------ -   #VUID-vkCmdDispatch-uniformBuffers-06935# If any stage of the---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command accesses a uniform buffer, and that stage---     was created without enabling either---     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'---     or---     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'---     for @uniformBuffers@, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>---     feature is not enabled, that stage /must/ not access values outside---     of the range of the buffer as specified in the descriptor set bound---     to the same pipeline bind point------ -   #VUID-vkCmdDispatch-None-08612# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>---     feature is not enabled, and any---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding---     to the pipeline bind point used by this command accesses a uniform---     buffer, it /must/ not access values outside of the range of the---     buffer as specified in the descriptor set bound to the same pipeline---     bind point------ -   #VUID-vkCmdDispatch-storageBuffers-06936# If any stage of the---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command accesses a storage buffer, and that stage---     was created without enabling either---     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'---     or---     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'---     for @storageBuffers@, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>---     feature is not enabled, that stage /must/ not access values outside---     of the range of the buffer as specified in the descriptor set bound---     to the same pipeline bind point------ -   #VUID-vkCmdDispatch-None-08613# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>---     feature is not enabled, and any---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding---     to the pipeline bind point used by this command accesses a storage---     buffer, it /must/ not access values outside of the range of the---     buffer as specified in the descriptor set bound to the same pipeline---     bind point------ -   #VUID-vkCmdDispatch-commandBuffer-02707# If @commandBuffer@ is an---     unprotected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, any resource accessed by---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding bound shaders>---     /must/ not be a protected resource------ -   #VUID-vkCmdDispatch-None-06550# If---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>---     accesses a 'Vulkan.Core10.Handles.Sampler' or---     'Vulkan.Core10.Handles.ImageView' object that enables---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,---     that object /must/ only be used with @OpImageSample*@ or---     @OpImageSparseSample*@ instructions------ -   #VUID-vkCmdDispatch-ConstOffset-06551# If---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>---     accesses a 'Vulkan.Core10.Handles.Sampler' or---     'Vulkan.Core10.Handles.ImageView' object that enables---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,---     that object /must/ not use the @ConstOffset@ and @Offset@ operands------ -   #VUID-vkCmdDispatch-viewType-07752# If a---     'Vulkan.Core10.Handles.ImageView' is accessed as a result of this---     command, then the image view’s @viewType@ /must/ match the @Dim@---     operand of the @OpTypeImage@ as described in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-operation-validation ???>------ -   #VUID-vkCmdDispatch-format-07753# If a---     'Vulkan.Core10.Handles.ImageView' is accessed as a result of this---     command, then the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-numericformat numeric type>---     of the image view’s @format@ and the @Sampled@ @Type@ operand of the---     @OpTypeImage@ /must/ match------ -   #VUID-vkCmdDispatch-OpImageWrite-08795# If a---     'Vulkan.Core10.Handles.ImageView' created with a format other than---     'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using---     @OpImageWrite@ as a result of this command, then the @Type@ of the---     @Texel@ operand of that instruction /must/ have at least as many---     components as the image view’s format------ -   #VUID-vkCmdDispatch-OpImageWrite-08796# If a---     'Vulkan.Core10.Handles.ImageView' created with the format---     'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using---     @OpImageWrite@ as a result of this command, then the @Type@ of the---     @Texel@ operand of that instruction /must/ have four components------ -   #VUID-vkCmdDispatch-OpImageWrite-04469# If a---     'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@---     as a result of this command, then the @Type@ of the @Texel@ operand---     of that instruction /must/ have at least as many components as the---     buffer view’s format------ -   #VUID-vkCmdDispatch-SampledType-04470# If a---     'Vulkan.Core10.Handles.ImageView' with a---     'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component---     width is accessed as a result of this command, the @SampledType@ of---     the @OpTypeImage@ operand of that instruction /must/ have a @Width@---     of 64------ -   #VUID-vkCmdDispatch-SampledType-04471# If a---     'Vulkan.Core10.Handles.ImageView' with a---     'Vulkan.Core10.Enums.Format.Format' that has a component width less---     than 64-bit is accessed as a result of this command, the---     @SampledType@ of the @OpTypeImage@ operand of that instruction---     /must/ have a @Width@ of 32------ -   #VUID-vkCmdDispatch-SampledType-04472# If a---     'Vulkan.Core10.Handles.BufferView' with a---     'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component---     width is accessed as a result of this command, the @SampledType@ of---     the @OpTypeImage@ operand of that instruction /must/ have a @Width@---     of 64------ -   #VUID-vkCmdDispatch-SampledType-04473# If a---     'Vulkan.Core10.Handles.BufferView' with a---     'Vulkan.Core10.Enums.Format.Format' that has a component width less---     than 64-bit is accessed as a result of this command, the---     @SampledType@ of the @OpTypeImage@ operand of that instruction---     /must/ have a @Width@ of 32------ -   #VUID-vkCmdDispatch-sparseImageInt64Atomics-04474# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>---     feature is not enabled, 'Vulkan.Core10.Handles.Image' objects---     created with the---     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_RESIDENCY_BIT'---     flag /must/ not be accessed by atomic instructions through an---     @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this---     command------ -   #VUID-vkCmdDispatch-sparseImageInt64Atomics-04475# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>---     feature is not enabled, 'Vulkan.Core10.Handles.Buffer' objects---     created with the---     'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_SPARSE_RESIDENCY_BIT'---     flag /must/ not be accessed by atomic instructions through an---     @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this---     command------ -   #VUID-vkCmdDispatch-OpImageWeightedSampleQCOM-06971# If---     @OpImageWeightedSampleQCOM@ is used to sample a---     'Vulkan.Core10.Handles.ImageView' as a result of this command, then---     the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM'------ -   #VUID-vkCmdDispatch-OpImageWeightedSampleQCOM-06972# If---     @OpImageWeightedSampleQCOM@ uses a 'Vulkan.Core10.Handles.ImageView'---     as a sample weight image as a result of this command, then the image---     view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM'------ -   #VUID-vkCmdDispatch-OpImageBoxFilterQCOM-06973# If---     @OpImageBoxFilterQCOM@ is used to sample a---     'Vulkan.Core10.Handles.ImageView' as a result of this command, then---     the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM'------ -   #VUID-vkCmdDispatch-OpImageBlockMatchSSDQCOM-06974# If---     @OpImageBlockMatchSSDQCOM@ is used to read from an---     'Vulkan.Core10.Handles.ImageView' as a result of this command, then---     the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'------ -   #VUID-vkCmdDispatch-OpImageBlockMatchSADQCOM-06975# If---     @OpImageBlockMatchSADQCOM@ is used to read from an---     'Vulkan.Core10.Handles.ImageView' as a result of this command, then---     the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'------ -   #VUID-vkCmdDispatch-OpImageBlockMatchSADQCOM-06976# If---     @OpImageBlockMatchSADQCOM@ or OpImageBlockMatchSSDQCOM is used to---     read from a reference image as result of this command, then the---     specified reference coordinates /must/ not fail---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation integer texel coordinate validation>------ -   #VUID-vkCmdDispatch-OpImageWeightedSampleQCOM-06977# If---     @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,---     @OpImageBlockMatchWindowSSDQCOM@, @OpImageBlockMatchWindowSADQCOM@,---     @OpImageBlockMatchGatherSSDQCOM@, @OpImageBlockMatchGatherSADQCOM@,---     @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a---     'Vulkan.Core10.Handles.Sampler' as a result of this command, then---     the sampler /must/ have been created with---     'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'------ -   #VUID-vkCmdDispatch-OpImageWeightedSampleQCOM-06978# If any command---     other than @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,---     @OpImageBlockMatchWindowSSDQCOM@, @OpImageBlockMatchWindowSADQCOM@,---     @OpImageBlockMatchGatherSSDQCOM@, @OpImageBlockMatchGatherSADQCOM@,---     @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a---     'Vulkan.Core10.Handles.Sampler' as a result of this command, then---     the sampler /must/ not have been created with---     'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'------ -   #VUID-vkCmdDispatch-OpImageBlockMatchWindow-09215# If a---     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@---     instruction is used to read from an---     'Vulkan.Core10.Handles.ImageView' as a result of this command, then---     the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'------ -   #VUID-vkCmdDispatch-OpImageBlockMatchWindow-09216# If a---     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@---     instruction is used to read from an---     'Vulkan.Core10.Handles.ImageView' as a result of this command, then---     the image view’s format /must/ be a single-component format.------ -   #VUID-vkCmdDispatch-OpImageBlockMatchWindow-09217# If a---     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@---     read from a reference image as result of this command, then the---     specified reference coordinates /must/ not fail---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation integer texel coordinate validation>------ -   #VUID-vkCmdDispatch-None-07288# Any shader invocation executed by---     this command /must/---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-termination terminate>------ -   #VUID-vkCmdDispatch-commandBuffer-02712# If @commandBuffer@ is a---     protected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, any resource written to by the---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command /must/ not be an unprotected resource------ -   #VUID-vkCmdDispatch-commandBuffer-02713# If @commandBuffer@ is a---     protected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, pipeline stages other than the framebuffer-space---     and compute stages in the 'Vulkan.Core10.Handles.Pipeline' object---     bound to the pipeline bind point used by this command /must/ not---     write to any resource------ -   #VUID-vkCmdDispatch-commandBuffer-04617# If any of the shader stages---     of the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind---     point used by this command uses the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-RayQueryKHR RayQueryKHR>---     capability, then @commandBuffer@ /must/ not be a protected command---     buffer------ -   #VUID-vkCmdDispatch-groupCountX-00386# @groupCountX@ /must/ be less---     than or equal to---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxComputeWorkGroupCount@[0]------ -   #VUID-vkCmdDispatch-groupCountY-00387# @groupCountY@ /must/ be less---     than or equal to---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxComputeWorkGroupCount@[1]------ -   #VUID-vkCmdDispatch-groupCountZ-00388# @groupCountZ@ /must/ be less---     than or equal to---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxComputeWorkGroupCount@[2]------ == Valid Usage (Implicit)------ -   #VUID-vkCmdDispatch-commandBuffer-parameter# @commandBuffer@ /must/---     be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdDispatch-commandBuffer-recording# @commandBuffer@ /must/---     be in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>------ -   #VUID-vkCmdDispatch-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support compute operations------ -   #VUID-vkCmdDispatch-renderpass# This command /must/ only be called---     outside of a render pass instance------ -   #VUID-vkCmdDispatch-videocoding# This command /must/ only be called---     outside of a video coding scope------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |--- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+--- | Primary                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Compute                                                                                                               | Action                                                                                                                                 |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.CommandBuffer'-cmdDispatch :: forall io-             . (MonadIO io)-            => -- | @commandBuffer@ is the command buffer into which the command will be-               -- recorded.-               CommandBuffer-            -> -- | @groupCountX@ is the number of local workgroups to dispatch in the X-               -- dimension.-               ("groupCountX" ::: Word32)-            -> -- | @groupCountY@ is the number of local workgroups to dispatch in the Y-               -- dimension.-               ("groupCountY" ::: Word32)-            -> -- | @groupCountZ@ is the number of local workgroups to dispatch in the Z-               -- dimension.-               ("groupCountZ" ::: Word32)-            -> io ()-cmdDispatch commandBuffer groupCountX groupCountY groupCountZ = liftIO $ do-  let vkCmdDispatchPtr = pVkCmdDispatch (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  unless (vkCmdDispatchPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDispatch is null" Nothing Nothing-  let vkCmdDispatch' = mkVkCmdDispatch vkCmdDispatchPtr-  traceAroundEvent "vkCmdDispatch" (vkCmdDispatch'-                                      (commandBufferHandle (commandBuffer))-                                      (groupCountX)-                                      (groupCountY)-                                      (groupCountZ))-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdDispatchIndirect-  :: FunPtr (Ptr CommandBuffer_T -> Buffer -> DeviceSize -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> DeviceSize -> IO ()---- | vkCmdDispatchIndirect - Dispatch compute work items with indirect--- parameters------ = Description------ 'cmdDispatchIndirect' behaves similarly to 'cmdDispatch' except that the--- parameters are read by the device from a buffer during execution. The--- parameters of the dispatch are encoded in a--- 'Vulkan.Core10.OtherTypes.DispatchIndirectCommand' structure taken from--- @buffer@ starting at @offset@.------ == Valid Usage------ -   #VUID-vkCmdDispatchIndirect-magFilter-04553# If a---     'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or---     @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and---     @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE' is---     used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of---     this command, then the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'------ -   #VUID-vkCmdDispatchIndirect-mipmapMode-04770# If a---     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to---     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'---     and @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE'---     is used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of---     this command, then the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'------ -   #VUID-vkCmdDispatchIndirect-None-06479# If a---     'Vulkan.Core10.Handles.ImageView' is sampled with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-depth-compare-operation depth comparison>,---     the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT'------ -   #VUID-vkCmdDispatchIndirect-None-02691# If a---     'Vulkan.Core10.Handles.ImageView' is accessed using atomic---     operations as a result of this command, then the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT'------ -   #VUID-vkCmdDispatchIndirect-None-07888# If a---     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER'---     descriptor is accessed using atomic operations as a result of this---     command, then the storage texel buffer’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-buffer-view-format-features format features>---     /must/ contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT'------ -   #VUID-vkCmdDispatchIndirect-None-02692# If a---     'Vulkan.Core10.Handles.ImageView' is sampled with---     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this---     command, then the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'------ -   #VUID-vkCmdDispatchIndirect-None-02693# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_filter_cubic VK_EXT_filter_cubic>---     extension is not enabled and any 'Vulkan.Core10.Handles.ImageView'---     is sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a---     result of this command, it /must/ not have a---     'Vulkan.Core10.Enums.ImageViewType.ImageViewType' of---     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D',---     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE', or---     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY'------ -   #VUID-vkCmdDispatchIndirect-filterCubic-02694# Any---     'Vulkan.Core10.Handles.ImageView' being sampled with---     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this---     command /must/ have a---     'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that---     supports cubic filtering, as specified by---     'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubic@---     returned by---     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'------ -   #VUID-vkCmdDispatchIndirect-filterCubicMinmax-02695# Any---     'Vulkan.Core10.Handles.ImageView' being sampled with---     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' with a reduction mode---     of either---     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'---     or---     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'---     as a result of this command /must/ have a---     'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that---     supports cubic filtering together with minmax filtering, as---     specified by---     'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubicMinmax@---     returned by---     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'------ -   #VUID-vkCmdDispatchIndirect-cubicRangeClamp-09212# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-range-clamp cubicRangeClamp>---     feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView'---     being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as---     a result of this command------     [/must/ not have a 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo']---         @reductionMode@ equal to---         'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM'------ -   #VUID-vkCmdDispatchIndirect-reductionMode-09213# Any---     'Vulkan.Core10.Handles.ImageView' being sampled with a---     'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'::@reductionMode@---     equal to---     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM'---     as a result of this command /must/ sample with---     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT'------ -   #VUID-vkCmdDispatchIndirect-selectableCubicWeights-09214# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-weight-selection selectableCubicWeights>---     feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView'---     being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as---     a result of this command /must/ have---     'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.SamplerCubicWeightsCreateInfoQCOM'::@cubicWeights@---     equal to---     'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM'------ -   #VUID-vkCmdDispatchIndirect-flags-02696# Any---     'Vulkan.Core10.Handles.Image' created with a---     'Vulkan.Core10.Image.ImageCreateInfo'::@flags@ containing---     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_CORNER_SAMPLED_BIT_NV'---     sampled as a result of this command /must/ only be sampled using a---     'Vulkan.Core10.Enums.SamplerAddressMode.SamplerAddressMode' of---     'Vulkan.Core10.Enums.SamplerAddressMode.SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE'------ -   #VUID-vkCmdDispatchIndirect-OpTypeImage-07027# For any---     'Vulkan.Core10.Handles.ImageView' being written as a storage image---     where the image format field of the @OpTypeImage@ is @Unknown@, the---     view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'------ -   #VUID-vkCmdDispatchIndirect-OpTypeImage-07028# For any---     'Vulkan.Core10.Handles.ImageView' being read as a storage image---     where the image format field of the @OpTypeImage@ is @Unknown@, the---     view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT'------ -   #VUID-vkCmdDispatchIndirect-OpTypeImage-07029# For any---     'Vulkan.Core10.Handles.BufferView' being written as a storage texel---     buffer where the image format field of the @OpTypeImage@ is---     @Unknown@, the view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>---     /must/ contain---     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'------ -   #VUID-vkCmdDispatchIndirect-OpTypeImage-07030# Any---     'Vulkan.Core10.Handles.BufferView' being read as a storage texel---     buffer where the image format field of the @OpTypeImage@ is---     @Unknown@ then the view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>---     /must/ contain---     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT'------ -   #VUID-vkCmdDispatchIndirect-None-08600# For each set /n/ that is---     statically used by---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,---     a descriptor set /must/ have been bound to /n/ at the same pipeline---     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is---     compatible for set /n/, with the---     'Vulkan.Core10.Handles.PipelineLayout' or---     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>------ -   #VUID-vkCmdDispatchIndirect-None-08601# For each push constant that---     is statically used by---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,---     a push constant value /must/ have been set for the same pipeline---     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is---     compatible for push constants, with the---     'Vulkan.Core10.Handles.PipelineLayout' or---     'Vulkan.Core10.Handles.DescriptorSetLayout' and---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>------ -   #VUID-vkCmdDispatchIndirect-maintenance4-08602# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance4 maintenance4>---     feature is not enabled, then for each push constant that is---     statically used by---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,---     a push constant value /must/ have been set for the same pipeline---     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is---     compatible for push constants, with the---     'Vulkan.Core10.Handles.PipelineLayout' or---     'Vulkan.Core10.Handles.DescriptorSetLayout' and---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>------ -   #VUID-vkCmdDispatchIndirect-None-08114# Descriptors in each bound---     descriptor set, specified via 'cmdBindDescriptorSets', /must/ be---     valid if they are statically used by the---     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point---     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'---     was not created with---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'------ -   #VUID-vkCmdDispatchIndirect-None-08115# If the descriptors used by---     the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind---     point were specified via 'cmdBindDescriptorSets', the bound---     'Vulkan.Core10.Handles.Pipeline' /must/ have been created without---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'------ -   #VUID-vkCmdDispatchIndirect-None-08116# Descriptors in bound---     descriptor buffers, specified via---     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',---     /must/ be valid if they are dynamically used by the---     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point---     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'---     was created with---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'------ -   #VUID-vkCmdDispatchIndirect-None-08604# Descriptors in bound---     descriptor buffers, specified via---     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',---     /must/ be valid if they are dynamically used by any---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding---     to the pipeline bind point used by this command------ -   #VUID-vkCmdDispatchIndirect-None-08117# If the descriptors used by---     the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind---     point were specified via---     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',---     the bound 'Vulkan.Core10.Handles.Pipeline' /must/ have been created---     with---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'------ -   #VUID-vkCmdDispatchIndirect-None-08119# If a descriptor is---     dynamically used with a 'Vulkan.Core10.Handles.Pipeline' created---     with---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',---     the descriptor memory /must/ be resident------ -   #VUID-vkCmdDispatchIndirect-None-08605# If a descriptor is---     dynamically used with a 'Vulkan.Extensions.Handles.ShaderEXT'---     created with a 'Vulkan.Core10.Handles.DescriptorSetLayout' that was---     created with---     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',---     the descriptor memory /must/ be resident------ -   #VUID-vkCmdDispatchIndirect-None-08606# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>---     feature is not enabled, a valid pipeline /must/ be bound to the---     pipeline bind point used by this command------ -   #VUID-vkCmdDispatchIndirect-None-08607# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>---     is enabled, either a valid pipeline /must/ be bound to the pipeline---     bind point used by this command, or a valid combination of valid and---     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be---     bound to every supported shader stage corresponding to the pipeline---     bind point used by this command------ -   #VUID-vkCmdDispatchIndirect-None-08608# If a pipeline is bound to---     the pipeline bind point used by this command, there /must/ not have---     been any calls to dynamic state setting commands for any state not---     specified as dynamic in the 'Vulkan.Core10.Handles.Pipeline' object---     bound to the pipeline bind point used by this command, since that---     pipeline was bound------ -   #VUID-vkCmdDispatchIndirect-None-08609# If the---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command or any---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding---     to the pipeline bind point used by this command accesses a---     'Vulkan.Core10.Handles.Sampler' object that uses unnormalized---     coordinates, that sampler /must/ not be used to sample from any---     'Vulkan.Core10.Handles.Image' with a---     'Vulkan.Core10.Handles.ImageView' of the type---     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D',---     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE',---     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D_ARRAY',---     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D_ARRAY' or---     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY', in---     any shader stage------ -   #VUID-vkCmdDispatchIndirect-None-08610# If the---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command or any---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding---     to the pipeline bind point used by this command accesses a---     'Vulkan.Core10.Handles.Sampler' object that uses unnormalized---     coordinates, that sampler /must/ not be used with any of the SPIR-V---     @OpImageSample*@ or @OpImageSparseSample*@ instructions with---     @ImplicitLod@, @Dref@ or @Proj@ in their name, in any shader stage------ -   #VUID-vkCmdDispatchIndirect-None-08611# If the---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command or any---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding---     to the pipeline bind point used by this command accesses a---     'Vulkan.Core10.Handles.Sampler' object that uses unnormalized---     coordinates, that sampler /must/ not be used with any of the SPIR-V---     @OpImageSample*@ or @OpImageSparseSample*@ instructions that---     includes a LOD bias or any offset values, in any shader stage------ -   #VUID-vkCmdDispatchIndirect-uniformBuffers-06935# If any stage of---     the 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline---     bind point used by this command accesses a uniform buffer, and that---     stage was created without enabling either---     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'---     or---     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'---     for @uniformBuffers@, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>---     feature is not enabled, that stage /must/ not access values outside---     of the range of the buffer as specified in the descriptor set bound---     to the same pipeline bind point------ -   #VUID-vkCmdDispatchIndirect-None-08612# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>---     feature is not enabled, and any---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding---     to the pipeline bind point used by this command accesses a uniform---     buffer, it /must/ not access values outside of the range of the---     buffer as specified in the descriptor set bound to the same pipeline---     bind point------ -   #VUID-vkCmdDispatchIndirect-storageBuffers-06936# If any stage of---     the 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline---     bind point used by this command accesses a storage buffer, and that---     stage was created without enabling either---     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'---     or---     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'---     for @storageBuffers@, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>---     feature is not enabled, that stage /must/ not access values outside---     of the range of the buffer as specified in the descriptor set bound---     to the same pipeline bind point------ -   #VUID-vkCmdDispatchIndirect-None-08613# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>---     feature is not enabled, and any---     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding---     to the pipeline bind point used by this command accesses a storage---     buffer, it /must/ not access values outside of the range of the---     buffer as specified in the descriptor set bound to the same pipeline---     bind point------ -   #VUID-vkCmdDispatchIndirect-commandBuffer-02707# If @commandBuffer@---     is an unprotected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, any resource accessed by---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding bound shaders>---     /must/ not be a protected resource------ -   #VUID-vkCmdDispatchIndirect-None-06550# If---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>---     accesses a 'Vulkan.Core10.Handles.Sampler' or---     'Vulkan.Core10.Handles.ImageView' object that enables---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,---     that object /must/ only be used with @OpImageSample*@ or---     @OpImageSparseSample*@ instructions------ -   #VUID-vkCmdDispatchIndirect-ConstOffset-06551# If---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>---     accesses a 'Vulkan.Core10.Handles.Sampler' or---     'Vulkan.Core10.Handles.ImageView' object that enables---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,---     that object /must/ not use the @ConstOffset@ and @Offset@ operands------ -   #VUID-vkCmdDispatchIndirect-viewType-07752# If a---     'Vulkan.Core10.Handles.ImageView' is accessed as a result of this---     command, then the image view’s @viewType@ /must/ match the @Dim@---     operand of the @OpTypeImage@ as described in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-operation-validation ???>------ -   #VUID-vkCmdDispatchIndirect-format-07753# If a---     'Vulkan.Core10.Handles.ImageView' is accessed as a result of this---     command, then the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-numericformat numeric type>---     of the image view’s @format@ and the @Sampled@ @Type@ operand of the---     @OpTypeImage@ /must/ match------ -   #VUID-vkCmdDispatchIndirect-OpImageWrite-08795# If a---     'Vulkan.Core10.Handles.ImageView' created with a format other than---     'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using---     @OpImageWrite@ as a result of this command, then the @Type@ of the---     @Texel@ operand of that instruction /must/ have at least as many---     components as the image view’s format------ -   #VUID-vkCmdDispatchIndirect-OpImageWrite-08796# If a---     'Vulkan.Core10.Handles.ImageView' created with the format---     'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using---     @OpImageWrite@ as a result of this command, then the @Type@ of the---     @Texel@ operand of that instruction /must/ have four components------ -   #VUID-vkCmdDispatchIndirect-OpImageWrite-04469# If a---     'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@---     as a result of this command, then the @Type@ of the @Texel@ operand---     of that instruction /must/ have at least as many components as the---     buffer view’s format------ -   #VUID-vkCmdDispatchIndirect-SampledType-04470# If a---     'Vulkan.Core10.Handles.ImageView' with a---     'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component---     width is accessed as a result of this command, the @SampledType@ of---     the @OpTypeImage@ operand of that instruction /must/ have a @Width@---     of 64------ -   #VUID-vkCmdDispatchIndirect-SampledType-04471# If a---     'Vulkan.Core10.Handles.ImageView' with a---     'Vulkan.Core10.Enums.Format.Format' that has a component width less---     than 64-bit is accessed as a result of this command, the---     @SampledType@ of the @OpTypeImage@ operand of that instruction---     /must/ have a @Width@ of 32------ -   #VUID-vkCmdDispatchIndirect-SampledType-04472# If a---     'Vulkan.Core10.Handles.BufferView' with a---     'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component---     width is accessed as a result of this command, the @SampledType@ of---     the @OpTypeImage@ operand of that instruction /must/ have a @Width@---     of 64------ -   #VUID-vkCmdDispatchIndirect-SampledType-04473# If a---     'Vulkan.Core10.Handles.BufferView' with a---     'Vulkan.Core10.Enums.Format.Format' that has a component width less---     than 64-bit is accessed as a result of this command, the---     @SampledType@ of the @OpTypeImage@ operand of that instruction---     /must/ have a @Width@ of 32------ -   #VUID-vkCmdDispatchIndirect-sparseImageInt64Atomics-04474# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>---     feature is not enabled, 'Vulkan.Core10.Handles.Image' objects---     created with the---     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_RESIDENCY_BIT'---     flag /must/ not be accessed by atomic instructions through an---     @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this---     command------ -   #VUID-vkCmdDispatchIndirect-sparseImageInt64Atomics-04475# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>---     feature is not enabled, 'Vulkan.Core10.Handles.Buffer' objects---     created with the---     'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_SPARSE_RESIDENCY_BIT'---     flag /must/ not be accessed by atomic instructions through an---     @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this---     command------ -   #VUID-vkCmdDispatchIndirect-OpImageWeightedSampleQCOM-06971# If---     @OpImageWeightedSampleQCOM@ is used to sample a---     'Vulkan.Core10.Handles.ImageView' as a result of this command, then---     the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM'------ -   #VUID-vkCmdDispatchIndirect-OpImageWeightedSampleQCOM-06972# If---     @OpImageWeightedSampleQCOM@ uses a 'Vulkan.Core10.Handles.ImageView'---     as a sample weight image as a result of this command, then the image---     view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM'------ -   #VUID-vkCmdDispatchIndirect-OpImageBoxFilterQCOM-06973# If---     @OpImageBoxFilterQCOM@ is used to sample a---     'Vulkan.Core10.Handles.ImageView' as a result of this command, then---     the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM'------ -   #VUID-vkCmdDispatchIndirect-OpImageBlockMatchSSDQCOM-06974# If---     @OpImageBlockMatchSSDQCOM@ is used to read from an---     'Vulkan.Core10.Handles.ImageView' as a result of this command, then---     the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'------ -   #VUID-vkCmdDispatchIndirect-OpImageBlockMatchSADQCOM-06975# If---     @OpImageBlockMatchSADQCOM@ is used to read from an---     'Vulkan.Core10.Handles.ImageView' as a result of this command, then---     the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'------ -   #VUID-vkCmdDispatchIndirect-OpImageBlockMatchSADQCOM-06976# If---     @OpImageBlockMatchSADQCOM@ or OpImageBlockMatchSSDQCOM is used to---     read from a reference image as result of this command, then the---     specified reference coordinates /must/ not fail---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation integer texel coordinate validation>------ -   #VUID-vkCmdDispatchIndirect-OpImageWeightedSampleQCOM-06977# If---     @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,---     @OpImageBlockMatchWindowSSDQCOM@, @OpImageBlockMatchWindowSADQCOM@,---     @OpImageBlockMatchGatherSSDQCOM@, @OpImageBlockMatchGatherSADQCOM@,---     @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a---     'Vulkan.Core10.Handles.Sampler' as a result of this command, then---     the sampler /must/ have been created with---     'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'------ -   #VUID-vkCmdDispatchIndirect-OpImageWeightedSampleQCOM-06978# If any---     command other than @OpImageWeightedSampleQCOM@,---     @OpImageBoxFilterQCOM@, @OpImageBlockMatchWindowSSDQCOM@,---     @OpImageBlockMatchWindowSADQCOM@, @OpImageBlockMatchGatherSSDQCOM@,---     @OpImageBlockMatchGatherSADQCOM@, @OpImageBlockMatchSSDQCOM@, or---     @OpImageBlockMatchSADQCOM@ uses a 'Vulkan.Core10.Handles.Sampler' as---     a result of this command, then the sampler /must/ not have been---     created with---     'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'------ -   #VUID-vkCmdDispatchIndirect-OpImageBlockMatchWindow-09215# If a---     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@---     instruction is used to read from an---     'Vulkan.Core10.Handles.ImageView' as a result of this command, then---     the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'------ -   #VUID-vkCmdDispatchIndirect-OpImageBlockMatchWindow-09216# If a---     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@---     instruction is used to read from an---     'Vulkan.Core10.Handles.ImageView' as a result of this command, then---     the image view’s format /must/ be a single-component format.------ -   #VUID-vkCmdDispatchIndirect-OpImageBlockMatchWindow-09217# If a---     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@---     read from a reference image as result of this command, then the---     specified reference coordinates /must/ not fail---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation integer texel coordinate validation>------ -   #VUID-vkCmdDispatchIndirect-None-07288# Any shader invocation---     executed by this command /must/---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-termination terminate>------ -   #VUID-vkCmdDispatchIndirect-buffer-02708# If @buffer@ is non-sparse---     then it /must/ be bound completely and contiguously to a single---     'Vulkan.Core10.Handles.DeviceMemory' object------ -   #VUID-vkCmdDispatchIndirect-buffer-02709# @buffer@ /must/ have been---     created with the---     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDIRECT_BUFFER_BIT'---     bit set------ -   #VUID-vkCmdDispatchIndirect-offset-02710# @offset@ /must/ be a---     multiple of @4@------ -   #VUID-vkCmdDispatchIndirect-commandBuffer-02711# @commandBuffer@---     /must/ not be a protected command buffer------ -   #VUID-vkCmdDispatchIndirect-offset-00407# The sum of @offset@ and---     the size of 'Vulkan.Core10.OtherTypes.DispatchIndirectCommand'---     /must/ be less than or equal to the size of @buffer@------ == Valid Usage (Implicit)------ -   #VUID-vkCmdDispatchIndirect-commandBuffer-parameter# @commandBuffer@---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdDispatchIndirect-buffer-parameter# @buffer@ /must/ be a---     valid 'Vulkan.Core10.Handles.Buffer' handle------ -   #VUID-vkCmdDispatchIndirect-commandBuffer-recording# @commandBuffer@---     /must/ be in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>------ -   #VUID-vkCmdDispatchIndirect-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support compute operations------ -   #VUID-vkCmdDispatchIndirect-renderpass# This command /must/ only be---     called outside of a render pass instance------ -   #VUID-vkCmdDispatchIndirect-videocoding# This command /must/ only be---     called outside of a video coding scope------ -   #VUID-vkCmdDispatchIndirect-commonparent# Both of @buffer@, and---     @commandBuffer@ /must/ have been created, allocated, or retrieved---     from the same 'Vulkan.Core10.Handles.Device'------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |--- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+--- | Primary                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Compute                                                                                                               | Action                                                                                                                                 |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',--- 'Vulkan.Core10.FundamentalTypes.DeviceSize'-cmdDispatchIndirect :: forall io-                     . (MonadIO io)-                    => -- | @commandBuffer@ is the command buffer into which the command will be-                       -- recorded.-                       CommandBuffer-                    -> -- | @buffer@ is the buffer containing dispatch parameters.-                       Buffer-                    -> -- | @offset@ is the byte offset into @buffer@ where parameters begin.-                       ("offset" ::: DeviceSize)-                    -> io ()-cmdDispatchIndirect commandBuffer buffer offset = liftIO $ do-  let vkCmdDispatchIndirectPtr = pVkCmdDispatchIndirect (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  unless (vkCmdDispatchIndirectPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDispatchIndirect is null" Nothing Nothing-  let vkCmdDispatchIndirect' = mkVkCmdDispatchIndirect vkCmdDispatchIndirectPtr-  traceAroundEvent "vkCmdDispatchIndirect" (vkCmdDispatchIndirect'-                                              (commandBufferHandle (commandBuffer))-                                              (buffer)-                                              (offset))-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdCopyBuffer-  :: FunPtr (Ptr CommandBuffer_T -> Buffer -> Buffer -> Word32 -> Ptr BufferCopy -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> Buffer -> Word32 -> Ptr BufferCopy -> IO ()---- | vkCmdCopyBuffer - Copy data between buffer regions------ = Description------ Each source region specified by @pRegions@ is copied from the source--- buffer to the destination region of the destination buffer. If any of--- the specified regions in @srcBuffer@ overlaps in memory with any of the--- specified regions in @dstBuffer@, values read from those overlapping--- regions are undefined.------ == Valid Usage------ -   #VUID-vkCmdCopyBuffer-commandBuffer-01822# If @commandBuffer@ is an---     unprotected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, @srcBuffer@ /must/ not be a protected buffer------ -   #VUID-vkCmdCopyBuffer-commandBuffer-01823# If @commandBuffer@ is an---     unprotected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, @dstBuffer@ /must/ not be a protected buffer------ -   #VUID-vkCmdCopyBuffer-commandBuffer-01824# If @commandBuffer@ is a---     protected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, @dstBuffer@ /must/ not be an unprotected buffer------ -   #VUID-vkCmdCopyBuffer-srcOffset-00113# The @srcOffset@ member of---     each element of @pRegions@ /must/ be less than the size of---     @srcBuffer@------ -   #VUID-vkCmdCopyBuffer-dstOffset-00114# The @dstOffset@ member of---     each element of @pRegions@ /must/ be less than the size of---     @dstBuffer@------ -   #VUID-vkCmdCopyBuffer-size-00115# The @size@ member of each element---     of @pRegions@ /must/ be less than or equal to the size of---     @srcBuffer@ minus @srcOffset@------ -   #VUID-vkCmdCopyBuffer-size-00116# The @size@ member of each element---     of @pRegions@ /must/ be less than or equal to the size of---     @dstBuffer@ minus @dstOffset@------ -   #VUID-vkCmdCopyBuffer-pRegions-00117# The union of the source---     regions, and the union of the destination regions, specified by the---     elements of @pRegions@, /must/ not overlap in memory------ -   #VUID-vkCmdCopyBuffer-srcBuffer-00118# @srcBuffer@ /must/ have been---     created with---     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_SRC_BIT'---     usage flag------ -   #VUID-vkCmdCopyBuffer-srcBuffer-00119# If @srcBuffer@ is non-sparse---     then it /must/ be bound completely and contiguously to a single---     'Vulkan.Core10.Handles.DeviceMemory' object------ -   #VUID-vkCmdCopyBuffer-dstBuffer-00120# @dstBuffer@ /must/ have been---     created with---     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_DST_BIT'---     usage flag------ -   #VUID-vkCmdCopyBuffer-dstBuffer-00121# If @dstBuffer@ is non-sparse---     then it /must/ be bound completely and contiguously to a single---     'Vulkan.Core10.Handles.DeviceMemory' object------ == Valid Usage (Implicit)------ -   #VUID-vkCmdCopyBuffer-commandBuffer-parameter# @commandBuffer@---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdCopyBuffer-srcBuffer-parameter# @srcBuffer@ /must/ be a---     valid 'Vulkan.Core10.Handles.Buffer' handle------ -   #VUID-vkCmdCopyBuffer-dstBuffer-parameter# @dstBuffer@ /must/ be a---     valid 'Vulkan.Core10.Handles.Buffer' handle------ -   #VUID-vkCmdCopyBuffer-pRegions-parameter# @pRegions@ /must/ be a---     valid pointer to an array of @regionCount@ valid 'BufferCopy'---     structures------ -   #VUID-vkCmdCopyBuffer-commandBuffer-recording# @commandBuffer@---     /must/ be in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>------ -   #VUID-vkCmdCopyBuffer-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support transfer, graphics, or compute---     operations------ -   #VUID-vkCmdCopyBuffer-renderpass# This command /must/ only be called---     outside of a render pass instance------ -   #VUID-vkCmdCopyBuffer-videocoding# This command /must/ only be---     called outside of a video coding scope------ -   #VUID-vkCmdCopyBuffer-regionCount-arraylength# @regionCount@ /must/---     be greater than @0@------ -   #VUID-vkCmdCopyBuffer-commonparent# Each of @commandBuffer@,---     @dstBuffer@, and @srcBuffer@ /must/ have been created, allocated, or---     retrieved from the same 'Vulkan.Core10.Handles.Device'------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |--- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+--- | Primary                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Transfer                                                                                                              | Action                                                                                                                                 |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Graphics                                                                                                              |                                                                                                                                        |--- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Compute                                                                                                               |                                                                                                                                        |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.Buffer', 'BufferCopy',--- 'Vulkan.Core10.Handles.CommandBuffer'-cmdCopyBuffer :: forall io-               . (MonadIO io)-              => -- | @commandBuffer@ is the command buffer into which the command will be-                 -- recorded.-                 CommandBuffer-              -> -- | @srcBuffer@ is the source buffer.-                 ("srcBuffer" ::: Buffer)-              -> -- | @dstBuffer@ is the destination buffer.-                 ("dstBuffer" ::: Buffer)-              -> -- | @pRegions@ is a pointer to an array of 'BufferCopy' structures-                 -- specifying the regions to copy.-                 ("regions" ::: Vector BufferCopy)-              -> io ()-cmdCopyBuffer commandBuffer-                srcBuffer-                dstBuffer-                regions = liftIO . evalContT $ do-  let vkCmdCopyBufferPtr = pVkCmdCopyBuffer (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  lift $ unless (vkCmdCopyBufferPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdCopyBuffer is null" Nothing Nothing-  let vkCmdCopyBuffer' = mkVkCmdCopyBuffer vkCmdCopyBufferPtr-  pPRegions <- ContT $ allocaBytes @BufferCopy ((Data.Vector.length (regions)) * 24)-  lift $ Data.Vector.imapM_ (\i e -> poke (pPRegions `plusPtr` (24 * (i)) :: Ptr BufferCopy) (e)) (regions)-  lift $ traceAroundEvent "vkCmdCopyBuffer" (vkCmdCopyBuffer'-                                               (commandBufferHandle (commandBuffer))-                                               (srcBuffer)-                                               (dstBuffer)-                                               ((fromIntegral (Data.Vector.length $ (regions)) :: Word32))-                                               (pPRegions))-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdCopyImage-  :: FunPtr (Ptr CommandBuffer_T -> Image -> ImageLayout -> Image -> ImageLayout -> Word32 -> Ptr ImageCopy -> IO ()) -> Ptr CommandBuffer_T -> Image -> ImageLayout -> Image -> ImageLayout -> Word32 -> Ptr ImageCopy -> IO ()---- | vkCmdCopyImage - Copy data between images------ = Description------ Each source region specified by @pRegions@ is copied from the source--- image to the destination region of the destination image. If any of the--- specified regions in @srcImage@ overlaps in memory with any of the--- specified regions in @dstImage@, values read from those overlapping--- regions are undefined.------ <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion Multi-planar images>--- /can/ only be copied on a per-plane basis, and the subresources used in--- each region when copying to or from such images /must/ specify only one--- plane, though different regions /can/ specify different planes. When--- copying planes of multi-planar images, the format considered is the--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-compatible-planes compatible format for that plane>,--- rather than the format of the multi-planar image.------ If the format of the destination image has a different--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-compatibility-classes block extent>--- than the source image (e.g. one is a compressed format), the offset and--- extent for each of the regions specified is--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-size-compatibility scaled according to the block extents of each format>--- to match in size. Copy regions for each image /must/ be aligned to a--- multiple of the texel block extent in each dimension, except at the--- edges of the image, where region extents /must/ match the edge of the--- image.------ Image data /can/ be copied between images with different image types. If--- one image is 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D' and the other--- image is 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D' with multiple--- layers, then each slice is copied to or from a different layer; @depth@--- slices in the 3D image correspond to @layerCount@ layers in the 2D--- image, with an effective @depth@ of @1@ used for the 2D image. If--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-maintenance5 maintenance5>--- is enabled, all other combinations are allowed and function as if 1D--- images are 2D images with a height of 1. Otherwise, other combinations--- of image types are disallowed.------ == Valid Usage------ -   #VUID-vkCmdCopyImage-commandBuffer-01825# If @commandBuffer@ is an---     unprotected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, @srcImage@ /must/ not be a protected image------ -   #VUID-vkCmdCopyImage-commandBuffer-01826# If @commandBuffer@ is an---     unprotected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, @dstImage@ /must/ not be a protected image------ -   #VUID-vkCmdCopyImage-commandBuffer-01827# If @commandBuffer@ is a---     protected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, @dstImage@ /must/ not be an unprotected image------ -   #VUID-vkCmdCopyImage-pRegions-00124# The union of all source---     regions, and the union of all destination regions, specified by the---     elements of @pRegions@, /must/ not overlap in memory------ -   #VUID-vkCmdCopyImage-srcImage-01995# The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>---     of @srcImage@ /must/ contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_TRANSFER_SRC_BIT'------ -   #VUID-vkCmdCopyImage-srcImageLayout-00128# @srcImageLayout@ /must/---     specify the layout of the image subresources of @srcImage@ specified---     in @pRegions@ at the time this command is executed on a---     'Vulkan.Core10.Handles.Device'------ -   #VUID-vkCmdCopyImage-srcImageLayout-01917# @srcImageLayout@ /must/---     be---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR',---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL',---     or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL'------ -   #VUID-vkCmdCopyImage-dstImage-01996# The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>---     of @dstImage@ /must/ contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_TRANSFER_DST_BIT'------ -   #VUID-vkCmdCopyImage-dstImageLayout-00133# @dstImageLayout@ /must/---     specify the layout of the image subresources of @dstImage@ specified---     in @pRegions@ at the time this command is executed on a---     'Vulkan.Core10.Handles.Device'------ -   #VUID-vkCmdCopyImage-dstImageLayout-01395# @dstImageLayout@ /must/---     be---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR',---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL',---     or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL'------ -   #VUID-vkCmdCopyImage-srcImage-01548# If the---     'Vulkan.Core10.Enums.Format.Format' of each of @srcImage@ and---     @dstImage@ is not a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,---     the 'Vulkan.Core10.Enums.Format.Format' of each of @srcImage@ and---     @dstImage@ /must/ be---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-size-compatibility size-compatible>------ -   #VUID-vkCmdCopyImage-None-01549# In a copy to or from a plane of a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar image>,---     the 'Vulkan.Core10.Enums.Format.Format' of the image and plane---     /must/ be compatible according to---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatible-planes the description of compatible planes>---     for the plane being copied------ -   #VUID-vkCmdCopyImage-srcImage-09247# If the---     'Vulkan.Core10.Enums.Format.Format' of each of @srcImage@ and---     @dstImage@ is a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#compressed_image_formats compressed image format>,---     the formats /must/ have the same texel block extent------ -   #VUID-vkCmdCopyImage-srcImage-00136# The sample count of @srcImage@---     and @dstImage@ /must/ match------ -   #VUID-vkCmdCopyImage-srcOffset-01783# The @srcOffset@ and @extent@---     members of each element of @pRegions@ /must/ respect the image---     transfer granularity requirements of @commandBuffer@’s command---     pool’s queue family, as described in---     'Vulkan.Core10.DeviceInitialization.QueueFamilyProperties'------ -   #VUID-vkCmdCopyImage-dstOffset-01784# The @dstOffset@ and @extent@---     members of each element of @pRegions@ /must/ respect the image---     transfer granularity requirements of @commandBuffer@’s command---     pool’s queue family, as described in---     'Vulkan.Core10.DeviceInitialization.QueueFamilyProperties'------ -   #VUID-vkCmdCopyImage-srcImage-01551# If neither @srcImage@ nor---     @dstImage@ has a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar image format>---     then for each element of @pRegions@, @srcSubresource.aspectMask@ and---     @dstSubresource.aspectMask@ /must/ match------ -   #VUID-vkCmdCopyImage-srcImage-08713# If @srcImage@ has a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar image format>,---     then for each element of @pRegions@, @srcSubresource.aspectMask@---     /must/ be a single valid---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-planes-image-aspect multi-planar aspect mask>---     bit------ -   #VUID-vkCmdCopyImage-dstImage-08714# If @dstImage@ has a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar image format>,---     then for each element of @pRegions@, @dstSubresource.aspectMask@---     /must/ be a single valid---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-planes-image-aspect multi-planar aspect mask>---     bit------ -   #VUID-vkCmdCopyImage-srcImage-01556# If @srcImage@ has a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar image format>---     and the @dstImage@ does not have a multi-planar image format, then---     for each element of @pRegions@, @dstSubresource.aspectMask@ /must/---     be 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'------ -   #VUID-vkCmdCopyImage-dstImage-01557# If @dstImage@ has a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar image format>---     and the @srcImage@ does not have a multi-planar image format, then---     for each element of @pRegions@, @srcSubresource.aspectMask@ /must/---     be 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'------ -   #VUID-vkCmdCopyImage-apiVersion-07932# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance1 VK_KHR_maintenance1>---     extension is not enabled, or---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceProperties'::@apiVersion@---     is less than Vulkan 1.1, and either @srcImage@ or @dstImage@ is of---     type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each---     element of @pRegions@, @srcSubresource.baseArrayLayer@ and---     @dstSubresource.baseArrayLayer@ /must/ both be @0@, and---     @srcSubresource.layerCount@ and @dstSubresource.layerCount@ /must/---     both be @1@------ -   #VUID-vkCmdCopyImage-srcImage-04443# If @srcImage@ is of type---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each element---     of @pRegions@, @srcSubresource.baseArrayLayer@ /must/ be @0@ and---     @srcSubresource.layerCount@ /must/ be @1@------ -   #VUID-vkCmdCopyImage-dstImage-04444# If @dstImage@ is of type---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each element---     of @pRegions@, @dstSubresource.baseArrayLayer@ /must/ be @0@ and---     @dstSubresource.layerCount@ /must/ be @1@------ -   #VUID-vkCmdCopyImage-aspectMask-00142# For each element of---     @pRegions@, @srcSubresource.aspectMask@ /must/ specify aspects---     present in @srcImage@------ -   #VUID-vkCmdCopyImage-aspectMask-00143# For each element of---     @pRegions@, @dstSubresource.aspectMask@ /must/ specify aspects---     present in @dstImage@------ -   #VUID-vkCmdCopyImage-srcOffset-00144# For each element of---     @pRegions@, @srcOffset.x@ and (@extent.width@ + @srcOffset.x@)---     /must/ both be greater than or equal to @0@ and less than or equal---     to the width of the specified @srcSubresource@ of @srcImage@------ -   #VUID-vkCmdCopyImage-srcOffset-00145# For each element of---     @pRegions@, @srcOffset.y@ and (@extent.height@ + @srcOffset.y@)---     /must/ both be greater than or equal to @0@ and less than or equal---     to the height of the specified @srcSubresource@ of @srcImage@------ -   #VUID-vkCmdCopyImage-srcImage-00146# If @srcImage@ is of type---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element---     of @pRegions@, @srcOffset.y@ /must/ be @0@ and @extent.height@---     /must/ be @1@------ -   #VUID-vkCmdCopyImage-srcOffset-00147# If @srcImage@ is of type---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each element---     of @pRegions@, @srcOffset.z@ and (@extent.depth@ + @srcOffset.z@)---     /must/ both be greater than or equal to @0@ and less than or equal---     to the depth of the specified @srcSubresource@ of @srcImage@------ -   #VUID-vkCmdCopyImage-srcImage-01785# If @srcImage@ is of type---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element---     of @pRegions@, @srcOffset.z@ /must/ be @0@ and @extent.depth@ /must/---     be @1@------ -   #VUID-vkCmdCopyImage-dstImage-01786# If @dstImage@ is of type---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element---     of @pRegions@, @dstOffset.z@ /must/ be @0@ and @extent.depth@ /must/---     be @1@------ -   #VUID-vkCmdCopyImage-srcImage-01787# If @srcImage@ is of type---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element---     of @pRegions@, @srcOffset.z@ /must/ be @0@------ -   #VUID-vkCmdCopyImage-dstImage-01788# If @dstImage@ is of type---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element---     of @pRegions@, @dstOffset.z@ /must/ be @0@------ -   #VUID-vkCmdCopyImage-apiVersion-07933# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance1 VK_KHR_maintenance1>---     extension is not enabled, and---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceProperties'::@apiVersion@---     is less than Vulkan 1.1, @srcImage@ and @dstImage@ /must/ have the---     same 'Vulkan.Core10.Enums.ImageType.ImageType'------ -   #VUID-vkCmdCopyImage-apiVersion-08969# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance1 VK_KHR_maintenance1>---     extension is not enabled, and---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceProperties'::@apiVersion@---     is less than Vulkan 1.1, @srcImage@ or @dstImage@ is of type---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element---     of @pRegions@, @extent.depth@ /must/ be @1@------ -   #VUID-vkCmdCopyImage-srcImage-07743# If @srcImage@ and @dstImage@---     have a different 'Vulkan.Core10.Enums.ImageType.ImageType', and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance5 maintenance5>---     is not enabled, one /must/ be---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D' and the other /must/---     be 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D'------ -   #VUID-vkCmdCopyImage-srcImage-08793# If @srcImage@ and @dstImage@---     have the same 'Vulkan.Core10.Enums.ImageType.ImageType', for each---     element of @pRegions@, if neither of the @layerCount@ members of---     @srcSubresource@ or @dstSubresource@ are---     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS', the---     @layerCount@ members of @srcSubresource@ or @dstSubresource@ /must/---     match------ -   #VUID-vkCmdCopyImage-maintenance5-08792# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance5 maintenance5>---     feature is not enabled, the @layerCount@ member of @srcSubresource@---     or @dstSubresource@ /must/ not be---     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS'------ -   #VUID-vkCmdCopyImage-srcImage-08794# If @srcImage@ and @dstImage@---     have the same 'Vulkan.Core10.Enums.ImageType.ImageType', and one of---     the @layerCount@ members of @srcSubresource@ or @dstSubresource@ is---     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS', the other---     member /must/ be either---     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' or equal to the---     @arrayLayers@ member of the 'Vulkan.Core10.Image.ImageCreateInfo'---     used to create the image minus @baseArrayLayer@------ -   #VUID-vkCmdCopyImage-srcImage-01790# If @srcImage@ and @dstImage@---     are both of type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then---     for each element of @pRegions@, @extent.depth@ /must/ be @1@------ -   #VUID-vkCmdCopyImage-srcImage-01791# If @srcImage@ is of type---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', and @dstImage@ is of---     type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each---     element of @pRegions@, @extent.depth@ /must/ equal---     @srcSubresource.layerCount@------ -   #VUID-vkCmdCopyImage-dstImage-01792# If @dstImage@ is of type---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', and @srcImage@ is of---     type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each---     element of @pRegions@, @extent.depth@ /must/ equal---     @dstSubresource.layerCount@------ -   #VUID-vkCmdCopyImage-dstOffset-00150# For each element of---     @pRegions@, @dstOffset.x@ and (@extent.width@ + @dstOffset.x@)---     /must/ both be greater than or equal to @0@ and less than or equal---     to the width of the specified @dstSubresource@ of @dstImage@------ -   #VUID-vkCmdCopyImage-dstOffset-00151# For each element of---     @pRegions@, @dstOffset.y@ and (@extent.height@ + @dstOffset.y@)---     /must/ both be greater than or equal to @0@ and less than or equal---     to the height of the specified @dstSubresource@ of @dstImage@------ -   #VUID-vkCmdCopyImage-dstImage-00152# If @dstImage@ is of type---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element---     of @pRegions@, @dstOffset.y@ /must/ be @0@ and @extent.height@---     /must/ be @1@------ -   #VUID-vkCmdCopyImage-dstOffset-00153# If @dstImage@ is of type---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each element---     of @pRegions@, @dstOffset.z@ and (@extent.depth@ + @dstOffset.z@)---     /must/ both be greater than or equal to @0@ and less than or equal---     to the depth of the specified @dstSubresource@ of @dstImage@------ -   #VUID-vkCmdCopyImage-pRegions-07278# For each element of @pRegions@,---     @srcOffset.x@ /must/ be a multiple of the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent width>---     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@------ -   #VUID-vkCmdCopyImage-pRegions-07279# For each element of @pRegions@,---     @srcOffset.y@ /must/ be a multiple of the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent height>---     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@------ -   #VUID-vkCmdCopyImage-pRegions-07280# For each element of @pRegions@,---     @srcOffset.z@ /must/ be a multiple of the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent depth>---     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@------ -   #VUID-vkCmdCopyImage-pRegions-07281# For each element of @pRegions@,---     @dstOffset.x@ /must/ be a multiple of the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent width>---     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@------ -   #VUID-vkCmdCopyImage-pRegions-07282# For each element of @pRegions@,---     @dstOffset.y@ /must/ be a multiple of the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent height>---     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@------ -   #VUID-vkCmdCopyImage-pRegions-07283# For each element of @pRegions@,---     @dstOffset.z@ /must/ be a multiple of the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent depth>---     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@------ -   #VUID-vkCmdCopyImage-srcImage-01728# For each element of @pRegions@,---     if the sum of @srcOffset.x@ and @extent.width@ does not equal the---     width of the subresource specified by @srcSubresource@,---     @extent.width@ /must/ be a multiple of the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent width>---     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@------ -   #VUID-vkCmdCopyImage-srcImage-01729# For each element of @pRegions@,---     if the sum of @srcOffset.y@ and @extent.height@ does not equal the---     height of the subresource specified by @srcSubresource@,---     @extent.height@ /must/ be a multiple of the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent height>---     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@------ -   #VUID-vkCmdCopyImage-srcImage-01730# For each element of @pRegions@,---     if the sum of @srcOffset.z@ and @extent.depth@ does not equal the---     depth of the subresource specified by @srcSubresource@,---     @extent.depth@ /must/ be a multiple of the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent depth>---     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@------ -   #VUID-vkCmdCopyImage-dstImage-01732# For each element of @pRegions@,---     if the sum of @dstOffset.x@ and @extent.width@ does not equal the---     width of the subresource specified by @dstSubresource@,---     @extent.width@ /must/ be a multiple of the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent width>---     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@------ -   #VUID-vkCmdCopyImage-dstImage-01733# For each element of @pRegions@,---     if the sum of @dstOffset.y@ and @extent.height@ does not equal the---     height of the subresource specified by @dstSubresource@,---     @extent.height@ /must/ be a multiple of the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent height>---     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@------ -   #VUID-vkCmdCopyImage-dstImage-01734# For each element of @pRegions@,---     if the sum of @dstOffset.z@ and @extent.depth@ does not equal the---     depth of the subresource specified by @dstSubresource@,---     @extent.depth@ /must/ be a multiple of the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent depth>---     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@------ -   #VUID-vkCmdCopyImage-aspect-06662# If the @aspect@ member of any---     element of @pRegions@ includes any flag other than---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'---     or @srcImage@ was not created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageStencilUsageCreateInfo separate stencil usage>,---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_SRC_BIT'---     /must/ have been included in the---     'Vulkan.Core10.Image.ImageCreateInfo'::@usage@ used to create---     @srcImage@------ -   #VUID-vkCmdCopyImage-aspect-06663# If the @aspect@ member of any---     element of @pRegions@ includes any flag other than---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'---     or @dstImage@ was not created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageStencilUsageCreateInfo separate stencil usage>,---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'---     /must/ have been included in the---     'Vulkan.Core10.Image.ImageCreateInfo'::@usage@ used to create---     @dstImage@------ -   #VUID-vkCmdCopyImage-aspect-06664# If the @aspect@ member of any---     element of @pRegions@ includes---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT',---     and @srcImage@ was created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageStencilUsageCreateInfo separate stencil usage>,---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_SRC_BIT'---     /must/ have been included in the---     'Vulkan.Core12.Promoted_From_VK_EXT_separate_stencil_usage.ImageStencilUsageCreateInfo'::@stencilUsage@---     used to create @srcImage@------ -   #VUID-vkCmdCopyImage-aspect-06665# If the @aspect@ member of any---     element of @pRegions@ includes---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT',---     and @dstImage@ was created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageStencilUsageCreateInfo separate stencil usage>,---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'---     /must/ have been included in the---     'Vulkan.Core12.Promoted_From_VK_EXT_separate_stencil_usage.ImageStencilUsageCreateInfo'::@stencilUsage@---     used to create @dstImage@------ -   #VUID-vkCmdCopyImage-srcImage-07966# If @srcImage@ is non-sparse---     then the image or the specified /disjoint/ plane /must/ be bound---     completely and contiguously to a single---     'Vulkan.Core10.Handles.DeviceMemory' object------ -   #VUID-vkCmdCopyImage-srcSubresource-07967# The---     @srcSubresource.mipLevel@ member of each element of @pRegions@---     /must/ be less than the @mipLevels@ specified in---     'Vulkan.Core10.Image.ImageCreateInfo' when @srcImage@ was created------ -   #VUID-vkCmdCopyImage-srcSubresource-07968# The---     @srcSubresource.baseArrayLayer@ + @srcSubresource.layerCount@ of---     each element of @pRegions@ , if @srcSubresource.layerCount@ is not---     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance5 maintenance5>---     is not enabled, /must/ be less than or equal to the @arrayLayers@---     specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @srcImage@---     was created------ -   #VUID-vkCmdCopyImage-srcImage-07969# @srcImage@ /must/ not have been---     created with @flags@ containing---     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'------ -   #VUID-vkCmdCopyImage-dstImage-07966# If @dstImage@ is non-sparse---     then the image or the specified /disjoint/ plane /must/ be bound---     completely and contiguously to a single---     'Vulkan.Core10.Handles.DeviceMemory' object------ -   #VUID-vkCmdCopyImage-dstSubresource-07967# The---     @dstSubresource.mipLevel@ member of each element of @pRegions@---     /must/ be less than the @mipLevels@ specified in---     'Vulkan.Core10.Image.ImageCreateInfo' when @dstImage@ was created------ -   #VUID-vkCmdCopyImage-dstSubresource-07968# The---     @dstSubresource.baseArrayLayer@ + @dstSubresource.layerCount@ of---     each element of @pRegions@ , if @dstSubresource.layerCount@ is not---     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance5 maintenance5>---     is not enabled, /must/ be less than or equal to the @arrayLayers@---     specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @dstImage@---     was created------ -   #VUID-vkCmdCopyImage-dstImage-07969# @dstImage@ /must/ not have been---     created with @flags@ containing---     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'------ == Valid Usage (Implicit)------ -   #VUID-vkCmdCopyImage-commandBuffer-parameter# @commandBuffer@ /must/---     be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdCopyImage-srcImage-parameter# @srcImage@ /must/ be a---     valid 'Vulkan.Core10.Handles.Image' handle------ -   #VUID-vkCmdCopyImage-srcImageLayout-parameter# @srcImageLayout@---     /must/ be a valid 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'---     value------ -   #VUID-vkCmdCopyImage-dstImage-parameter# @dstImage@ /must/ be a---     valid 'Vulkan.Core10.Handles.Image' handle------ -   #VUID-vkCmdCopyImage-dstImageLayout-parameter# @dstImageLayout@---     /must/ be a valid 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'---     value------ -   #VUID-vkCmdCopyImage-pRegions-parameter# @pRegions@ /must/ be a---     valid pointer to an array of @regionCount@ valid 'ImageCopy'---     structures------ -   #VUID-vkCmdCopyImage-commandBuffer-recording# @commandBuffer@ /must/---     be in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>------ -   #VUID-vkCmdCopyImage-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support transfer, graphics, or compute---     operations------ -   #VUID-vkCmdCopyImage-renderpass# This command /must/ only be called---     outside of a render pass instance------ -   #VUID-vkCmdCopyImage-videocoding# This command /must/ only be called---     outside of a video coding scope------ -   #VUID-vkCmdCopyImage-regionCount-arraylength# @regionCount@ /must/---     be greater than @0@------ -   #VUID-vkCmdCopyImage-commonparent# Each of @commandBuffer@,---     @dstImage@, and @srcImage@ /must/ have been created, allocated, or---     retrieved from the same 'Vulkan.Core10.Handles.Device'------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |--- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+--- | Primary                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Transfer                                                                                                              | Action                                                                                                                                 |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Graphics                                                                                                              |                                                                                                                                        |--- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Compute                                                                                                               |                                                                                                                                        |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.CommandBuffer', 'Vulkan.Core10.Handles.Image',--- 'ImageCopy', 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'-cmdCopyImage :: forall io-              . (MonadIO io)-             => -- | @commandBuffer@ is the command buffer into which the command will be-                -- recorded.-                CommandBuffer-             -> -- | @srcImage@ is the source image.-                ("srcImage" ::: Image)-             -> -- | @srcImageLayout@ is the current layout of the source image subresource.-                ("srcImageLayout" ::: ImageLayout)-             -> -- | @dstImage@ is the destination image.-                ("dstImage" ::: Image)-             -> -- | @dstImageLayout@ is the current layout of the destination image-                -- subresource.-                ("dstImageLayout" ::: ImageLayout)-             -> -- | @pRegions@ is a pointer to an array of 'ImageCopy' structures specifying-                -- the regions to copy.-                ("regions" ::: Vector ImageCopy)-             -> io ()-cmdCopyImage commandBuffer-               srcImage-               srcImageLayout-               dstImage-               dstImageLayout-               regions = liftIO . evalContT $ do-  let vkCmdCopyImagePtr = pVkCmdCopyImage (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  lift $ unless (vkCmdCopyImagePtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdCopyImage is null" Nothing Nothing-  let vkCmdCopyImage' = mkVkCmdCopyImage vkCmdCopyImagePtr-  pPRegions <- ContT $ allocaBytes @ImageCopy ((Data.Vector.length (regions)) * 68)-  lift $ Data.Vector.imapM_ (\i e -> poke (pPRegions `plusPtr` (68 * (i)) :: Ptr ImageCopy) (e)) (regions)-  lift $ traceAroundEvent "vkCmdCopyImage" (vkCmdCopyImage'-                                              (commandBufferHandle (commandBuffer))-                                              (srcImage)-                                              (srcImageLayout)-                                              (dstImage)-                                              (dstImageLayout)-                                              ((fromIntegral (Data.Vector.length $ (regions)) :: Word32))-                                              (pPRegions))-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdBlitImage-  :: FunPtr (Ptr CommandBuffer_T -> Image -> ImageLayout -> Image -> ImageLayout -> Word32 -> Ptr ImageBlit -> Filter -> IO ()) -> Ptr CommandBuffer_T -> Image -> ImageLayout -> Image -> ImageLayout -> Word32 -> Ptr ImageBlit -> Filter -> IO ()---- | vkCmdBlitImage - Copy regions of an image, potentially performing format--- conversion,------ = Description------ 'cmdBlitImage' /must/ not be used for multisampled source or destination--- images. Use 'cmdResolveImage' for this purpose.------ As the sizes of the source and destination extents /can/ differ in any--- dimension, texels in the source extent are scaled and filtered to the--- destination extent. Scaling occurs via the following operations:------ -   For each destination texel, the integer coordinate of that texel is---     converted to an unnormalized texture coordinate, using the effective---     inverse of the equations described in---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-unnormalized-to-integer unnormalized to integer conversion>:------     -   ubase = i + ½------     -   vbase = j + ½------     -   wbase = k + ½------ -   These base coordinates are then offset by the first destination---     offset:------     -   uoffset = ubase - xdst0------     -   voffset = vbase - ydst0------     -   woffset = wbase - zdst0------     -   aoffset = a - @baseArrayCount@dst------ -   The scale is determined from the source and destination regions, and---     applied to the offset coordinates:------     -   scaleu = (xsrc1 - xsrc0) \/ (xdst1 - xdst0)------     -   scalev = (ysrc1 - ysrc0) \/ (ydst1 - ydst0)------     -   scalew = (zsrc1 - zsrc0) \/ (zdst1 - zdst0)------     -   uscaled = uoffset × scaleu------     -   vscaled = voffset × scalev------     -   wscaled = woffset × scalew------ -   Finally the source offset is added to the scaled coordinates, to---     determine the final unnormalized coordinates used to sample from---     @srcImage@:------     -   u = uscaled + xsrc0------     -   v = vscaled + ysrc0------     -   w = wscaled + zsrc0------     -   q = @mipLevel@------     -   a = aoffset + @baseArrayCount@src------ These coordinates are used to sample from the source image, as described--- in--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures Image Operations chapter>,--- with the filter mode equal to that of @filter@, a mipmap mode of--- 'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_NEAREST' and--- an address mode of--- 'Vulkan.Core10.Enums.SamplerAddressMode.SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE'.--- Implementations /must/ clamp at the edge of the source image, and /may/--- additionally clamp to the edge of the source region.------ Note------ Due to allowable rounding errors in the generation of the source texture--- coordinates, it is not always possible to guarantee exactly which source--- texels will be sampled for a given blit. As rounding errors are--- implementation-dependent, the exact results of a blitting operation are--- also implementation-dependent.------ Blits are done layer by layer starting with the @baseArrayLayer@ member--- of @srcSubresource@ for the source and @dstSubresource@ for the--- destination. @layerCount@ layers are blitted to the destination image.------ When blitting 3D textures, slices in the destination region bounded by--- @dstOffsets@[0].z and @dstOffsets@[1].z are sampled from slices in the--- source region bounded by @srcOffsets@[0].z and @srcOffsets@[1].z. If the--- @filter@ parameter is 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' then--- the value sampled from the source image is taken by doing linear--- filtering using the interpolated __z__ coordinate represented by __w__--- in the previous equations. If the @filter@ parameter is--- 'Vulkan.Core10.Enums.Filter.FILTER_NEAREST' then the value sampled from--- the source image is taken from the single nearest slice, with an--- implementation-dependent arithmetic rounding mode.------ The following filtering and conversion rules apply:------ -   Integer formats /can/ only be converted to other integer formats---     with the same signedness.------ -   No format conversion is supported between depth\/stencil images. The---     formats /must/ match.------ -   Format conversions on unorm, snorm, scaled and packed float formats---     of the copied aspect of the image are performed by first converting---     the pixels to float values.------ -   For sRGB source formats, nonlinear RGB values are converted to---     linear representation prior to filtering.------ -   After filtering, the float values are first clamped and then cast to---     the destination image format. In case of sRGB destination format,---     linear RGB values are converted to nonlinear representation before---     writing the pixel to the image.------ Signed and unsigned integers are converted by first clamping to the--- representable range of the destination format, then casting the value.------ == Valid Usage------ -   #VUID-vkCmdBlitImage-commandBuffer-01834# If @commandBuffer@ is an---     unprotected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, @srcImage@ /must/ not be a protected image------ -   #VUID-vkCmdBlitImage-commandBuffer-01835# If @commandBuffer@ is an---     unprotected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, @dstImage@ /must/ not be a protected image------ -   #VUID-vkCmdBlitImage-commandBuffer-01836# If @commandBuffer@ is a---     protected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, @dstImage@ /must/ not be an unprotected image------ -   #VUID-vkCmdBlitImage-pRegions-00215# The source region specified by---     each element of @pRegions@ /must/ be a region that is contained---     within @srcImage@------ -   #VUID-vkCmdBlitImage-pRegions-00216# The destination region---     specified by each element of @pRegions@ /must/ be a region that is---     contained within @dstImage@------ -   #VUID-vkCmdBlitImage-pRegions-00217# The union of all destination---     regions, specified by the elements of @pRegions@, /must/ not overlap---     in memory with any texel that /may/ be sampled during the blit---     operation------ -   #VUID-vkCmdBlitImage-srcImage-01999# The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>---     of @srcImage@ /must/ contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_BLIT_SRC_BIT'------ -   #VUID-vkCmdBlitImage-srcImage-06421# @srcImage@ /must/ not use a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion format that requires a sampler Y′CBCR conversion>------ -   #VUID-vkCmdBlitImage-srcImage-00219# @srcImage@ /must/ have been---     created with---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_SRC_BIT'---     usage flag------ -   #VUID-vkCmdBlitImage-srcImage-00220# If @srcImage@ is non-sparse---     then it /must/ be bound completely and contiguously to a single---     'Vulkan.Core10.Handles.DeviceMemory' object------ -   #VUID-vkCmdBlitImage-srcImageLayout-00221# @srcImageLayout@ /must/---     specify the layout of the image subresources of @srcImage@ specified---     in @pRegions@ at the time this command is executed on a---     'Vulkan.Core10.Handles.Device'------ -   #VUID-vkCmdBlitImage-srcImageLayout-01398# @srcImageLayout@ /must/---     be---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR',---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL'---     or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL'------ -   #VUID-vkCmdBlitImage-dstImage-02000# The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>---     of @dstImage@ /must/ contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_BLIT_DST_BIT'------ -   #VUID-vkCmdBlitImage-dstImage-06422# @dstImage@ /must/ not use a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion format that requires a sampler Y′CBCR conversion>------ -   #VUID-vkCmdBlitImage-dstImage-00224# @dstImage@ /must/ have been---     created with---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'---     usage flag------ -   #VUID-vkCmdBlitImage-dstImage-00225# If @dstImage@ is non-sparse---     then it /must/ be bound completely and contiguously to a single---     'Vulkan.Core10.Handles.DeviceMemory' object------ -   #VUID-vkCmdBlitImage-dstImageLayout-00226# @dstImageLayout@ /must/---     specify the layout of the image subresources of @dstImage@ specified---     in @pRegions@ at the time this command is executed on a---     'Vulkan.Core10.Handles.Device'------ -   #VUID-vkCmdBlitImage-dstImageLayout-01399# @dstImageLayout@ /must/---     be---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR',---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL'---     or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL'------ -   #VUID-vkCmdBlitImage-srcImage-00229# If either of @srcImage@ or---     @dstImage@ was created with a signed integer---     'Vulkan.Core10.Enums.Format.Format', the other /must/ also have been---     created with a signed integer 'Vulkan.Core10.Enums.Format.Format'------ -   #VUID-vkCmdBlitImage-srcImage-00230# If either of @srcImage@ or---     @dstImage@ was created with an unsigned integer---     'Vulkan.Core10.Enums.Format.Format', the other /must/ also have been---     created with an unsigned integer 'Vulkan.Core10.Enums.Format.Format'------ -   #VUID-vkCmdBlitImage-srcImage-00231# If either of @srcImage@ or---     @dstImage@ was created with a depth\/stencil format, the other---     /must/ have exactly the same format------ -   #VUID-vkCmdBlitImage-srcImage-00232# If @srcImage@ was created with---     a depth\/stencil format, @filter@ /must/ be---     'Vulkan.Core10.Enums.Filter.FILTER_NEAREST'------ -   #VUID-vkCmdBlitImage-srcImage-00233# @srcImage@ /must/ have been---     created with a @samples@ value of---     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'------ -   #VUID-vkCmdBlitImage-dstImage-00234# @dstImage@ /must/ have been---     created with a @samples@ value of---     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'------ -   #VUID-vkCmdBlitImage-filter-02001# If @filter@ is---     'Vulkan.Core10.Enums.Filter.FILTER_LINEAR', then the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>---     of @srcImage@ /must/ contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'------ -   #VUID-vkCmdBlitImage-filter-02002# If @filter@ is---     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT', then the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>---     of @srcImage@ /must/ contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'------ -   #VUID-vkCmdBlitImage-filter-00237# If @filter@ is---     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT', @srcImage@ /must/ be---     of type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D'------ -   #VUID-vkCmdBlitImage-srcSubresource-01705# The---     @srcSubresource.mipLevel@ member of each element of @pRegions@---     /must/ be less than the @mipLevels@ specified in---     'Vulkan.Core10.Image.ImageCreateInfo' when @srcImage@ was created------ -   #VUID-vkCmdBlitImage-dstSubresource-01706# The---     @dstSubresource.mipLevel@ member of each element of @pRegions@---     /must/ be less than the @mipLevels@ specified in---     'Vulkan.Core10.Image.ImageCreateInfo' when @dstImage@ was created------ -   #VUID-vkCmdBlitImage-srcSubresource-01707# The---     @srcSubresource.baseArrayLayer@ + @srcSubresource.layerCount@ of---     each element of @pRegions@ , if @srcSubresource.layerCount@ is not---     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance5 maintenance5>---     is not enabled, /must/ be less than or equal to the @arrayLayers@---     specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @srcImage@---     was created------ -   #VUID-vkCmdBlitImage-dstSubresource-01708# The---     @dstSubresource.baseArrayLayer@ + @dstSubresource.layerCount@ of---     each element of @pRegions@ , if @srcSubresource.layerCount@ is not---     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance5 maintenance5>---     is not enabled, /must/ be less than or equal to the @arrayLayers@---     specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @dstImage@---     was created------ -   #VUID-vkCmdBlitImage-dstImage-02545# @dstImage@ and @srcImage@---     /must/ not have been created with @flags@ containing---     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'------ -   #VUID-vkCmdBlitImage-srcImage-00240# If either @srcImage@ or---     @dstImage@ is of type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D',---     then for each element of @pRegions@, @srcSubresource.baseArrayLayer@---     and @dstSubresource.baseArrayLayer@ /must/ each be @0@, and---     @srcSubresource.layerCount@ and @dstSubresource.layerCount@ /must/---     each be @1@------ -   #VUID-vkCmdBlitImage-aspectMask-00241# For each element of---     @pRegions@, @srcSubresource.aspectMask@ /must/ specify aspects---     present in @srcImage@------ -   #VUID-vkCmdBlitImage-aspectMask-00242# For each element of---     @pRegions@, @dstSubresource.aspectMask@ /must/ specify aspects---     present in @dstImage@------ -   #VUID-vkCmdBlitImage-srcOffset-00243# For each element of---     @pRegions@, @srcOffsets@[0].x and @srcOffsets@[1].x /must/ both be---     greater than or equal to @0@ and less than or equal to the width of---     the specified @srcSubresource@ of @srcImage@------ -   #VUID-vkCmdBlitImage-srcOffset-00244# For each element of---     @pRegions@, @srcOffsets@[0].y and @srcOffsets@[1].y /must/ both be---     greater than or equal to @0@ and less than or equal to the height of---     the specified @srcSubresource@ of @srcImage@------ -   #VUID-vkCmdBlitImage-srcImage-00245# If @srcImage@ is of type---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element---     of @pRegions@, @srcOffsets@[0].y /must/ be @0@ and @srcOffsets@[1].y---     /must/ be @1@------ -   #VUID-vkCmdBlitImage-srcOffset-00246# For each element of---     @pRegions@, @srcOffsets@[0].z and @srcOffsets@[1].z /must/ both be---     greater than or equal to @0@ and less than or equal to the depth of---     the specified @srcSubresource@ of @srcImage@------ -   #VUID-vkCmdBlitImage-srcImage-00247# If @srcImage@ is of type---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D' or---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element---     of @pRegions@, @srcOffsets@[0].z /must/ be @0@ and @srcOffsets@[1].z---     /must/ be @1@------ -   #VUID-vkCmdBlitImage-dstOffset-00248# For each element of---     @pRegions@, @dstOffsets@[0].x and @dstOffsets@[1].x /must/ both be---     greater than or equal to @0@ and less than or equal to the width of---     the specified @dstSubresource@ of @dstImage@------ -   #VUID-vkCmdBlitImage-dstOffset-00249# For each element of---     @pRegions@, @dstOffsets@[0].y and @dstOffsets@[1].y /must/ both be---     greater than or equal to @0@ and less than or equal to the height of---     the specified @dstSubresource@ of @dstImage@------ -   #VUID-vkCmdBlitImage-dstImage-00250# If @dstImage@ is of type---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element---     of @pRegions@, @dstOffsets@[0].y /must/ be @0@ and @dstOffsets@[1].y---     /must/ be @1@------ -   #VUID-vkCmdBlitImage-dstOffset-00251# For each element of---     @pRegions@, @dstOffsets@[0].z and @dstOffsets@[1].z /must/ both be---     greater than or equal to @0@ and less than or equal to the depth of---     the specified @dstSubresource@ of @dstImage@------ -   #VUID-vkCmdBlitImage-dstImage-00252# If @dstImage@ is of type---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D' or---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element---     of @pRegions@, @dstOffsets@[0].z /must/ be @0@ and @dstOffsets@[1].z---     /must/ be @1@------ == Valid Usage (Implicit)------ -   #VUID-vkCmdBlitImage-commandBuffer-parameter# @commandBuffer@ /must/---     be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdBlitImage-srcImage-parameter# @srcImage@ /must/ be a---     valid 'Vulkan.Core10.Handles.Image' handle------ -   #VUID-vkCmdBlitImage-srcImageLayout-parameter# @srcImageLayout@---     /must/ be a valid 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'---     value------ -   #VUID-vkCmdBlitImage-dstImage-parameter# @dstImage@ /must/ be a---     valid 'Vulkan.Core10.Handles.Image' handle------ -   #VUID-vkCmdBlitImage-dstImageLayout-parameter# @dstImageLayout@---     /must/ be a valid 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'---     value------ -   #VUID-vkCmdBlitImage-pRegions-parameter# @pRegions@ /must/ be a---     valid pointer to an array of @regionCount@ valid 'ImageBlit'---     structures------ -   #VUID-vkCmdBlitImage-filter-parameter# @filter@ /must/ be a valid---     'Vulkan.Core10.Enums.Filter.Filter' value------ -   #VUID-vkCmdBlitImage-commandBuffer-recording# @commandBuffer@ /must/---     be in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>------ -   #VUID-vkCmdBlitImage-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics operations------ -   #VUID-vkCmdBlitImage-renderpass# This command /must/ only be called---     outside of a render pass instance------ -   #VUID-vkCmdBlitImage-videocoding# This command /must/ only be called---     outside of a video coding scope------ -   #VUID-vkCmdBlitImage-regionCount-arraylength# @regionCount@ /must/---     be greater than @0@------ -   #VUID-vkCmdBlitImage-commonparent# Each of @commandBuffer@,---     @dstImage@, and @srcImage@ /must/ have been created, allocated, or---     retrieved from the same 'Vulkan.Core10.Handles.Device'------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |--- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+--- | Primary                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.CommandBuffer',--- 'Vulkan.Core10.Enums.Filter.Filter', 'Vulkan.Core10.Handles.Image',--- 'ImageBlit', 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'-cmdBlitImage :: forall io-              . (MonadIO io)-             => -- | @commandBuffer@ is the command buffer into which the command will be-                -- recorded.-                CommandBuffer-             -> -- | @srcImage@ is the source image.-                ("srcImage" ::: Image)-             -> -- | @srcImageLayout@ is the layout of the source image subresources for the-                -- blit.-                ("srcImageLayout" ::: ImageLayout)-             -> -- | @dstImage@ is the destination image.-                ("dstImage" ::: Image)-             -> -- | @dstImageLayout@ is the layout of the destination image subresources for-                -- the blit.-                ("dstImageLayout" ::: ImageLayout)-             -> -- | @pRegions@ is a pointer to an array of 'ImageBlit' structures specifying-                -- the regions to blit.-                ("regions" ::: Vector ImageBlit)-             -> -- | @filter@ is a 'Vulkan.Core10.Enums.Filter.Filter' specifying the filter-                -- to apply if the blits require scaling.-                Filter-             -> io ()-cmdBlitImage commandBuffer-               srcImage-               srcImageLayout-               dstImage-               dstImageLayout-               regions-               filter' = liftIO . evalContT $ do-  let vkCmdBlitImagePtr = pVkCmdBlitImage (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  lift $ unless (vkCmdBlitImagePtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBlitImage is null" Nothing Nothing-  let vkCmdBlitImage' = mkVkCmdBlitImage vkCmdBlitImagePtr-  pPRegions <- ContT $ allocaBytes @ImageBlit ((Data.Vector.length (regions)) * 80)-  lift $ Data.Vector.imapM_ (\i e -> poke (pPRegions `plusPtr` (80 * (i)) :: Ptr ImageBlit) (e)) (regions)-  lift $ traceAroundEvent "vkCmdBlitImage" (vkCmdBlitImage'-                                              (commandBufferHandle (commandBuffer))-                                              (srcImage)-                                              (srcImageLayout)-                                              (dstImage)-                                              (dstImageLayout)-                                              ((fromIntegral (Data.Vector.length $ (regions)) :: Word32))-                                              (pPRegions)-                                              (filter'))-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdCopyBufferToImage-  :: FunPtr (Ptr CommandBuffer_T -> Buffer -> Image -> ImageLayout -> Word32 -> Ptr BufferImageCopy -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> Image -> ImageLayout -> Word32 -> Ptr BufferImageCopy -> IO ()---- | vkCmdCopyBufferToImage - Copy data from a buffer into an image------ = Description------ Each source region specified by @pRegions@ is copied from the source--- buffer to the destination region of the destination image according to--- the--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#copies-buffers-images-addressing addressing calculations>--- for each resource. If any of the specified regions in @srcBuffer@--- overlaps in memory with any of the specified regions in @dstImage@,--- values read from those overlapping regions are undefined. If any region--- accesses a depth aspect in @dstImage@ and the--- @VK_EXT_depth_range_unrestricted@ extension is not enabled, values--- copied from @srcBuffer@ outside of the range [0,1] will be be written as--- undefined values to the destination image.------ Copy regions for the image /must/ be aligned to a multiple of the texel--- block extent in each dimension, except at the edges of the image, where--- region extents /must/ match the edge of the image.------ == Valid Usage------ -   #VUID-vkCmdCopyBufferToImage-dstImage-07966# If @dstImage@ is---     non-sparse then the image or the specified /disjoint/ plane /must/---     be bound completely and contiguously to a single---     'Vulkan.Core10.Handles.DeviceMemory' object------ -   #VUID-vkCmdCopyBufferToImage-imageSubresource-07967# The---     @imageSubresource.mipLevel@ member of each element of @pRegions@---     /must/ be less than the @mipLevels@ specified in---     'Vulkan.Core10.Image.ImageCreateInfo' when @dstImage@ was created------ -   #VUID-vkCmdCopyBufferToImage-imageSubresource-07968# The---     @imageSubresource.baseArrayLayer@ + @imageSubresource.layerCount@ of---     each element of @pRegions@ , if @imageSubresource.layerCount@ is not---     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance5 maintenance5>---     is not enabled, /must/ be less than or equal to the @arrayLayers@---     specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @dstImage@---     was created------ -   #VUID-vkCmdCopyBufferToImage-dstImage-07969# @dstImage@ /must/ not---     have been created with @flags@ containing---     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'------ -   #VUID-vkCmdCopyBufferToImage-imageSubresource-07970# The image---     region specified by each element of @pRegions@ /must/ be contained---     within the specified @imageSubresource@ of @dstImage@------ -   #VUID-vkCmdCopyBufferToImage-imageSubresource-07971# For each---     element of @pRegions@, @imageOffset.x@ and (@imageExtent.width@ +---     @imageOffset.x@) /must/ both be greater than or equal to @0@ and---     less than or equal to the width of the specified @imageSubresource@---     of @dstImage@------ -   #VUID-vkCmdCopyBufferToImage-imageSubresource-07972# For each---     element of @pRegions@, @imageOffset.y@ and (@imageExtent.height@ +---     @imageOffset.y@) /must/ both be greater than or equal to @0@ and---     less than or equal to the height of the specified @imageSubresource@---     of @dstImage@------ -   #VUID-vkCmdCopyBufferToImage-dstImage-07973# @dstImage@ /must/ have---     a sample count equal to---     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'------ -   #VUID-vkCmdCopyBufferToImage-commandBuffer-01828# If @commandBuffer@---     is an unprotected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, @srcBuffer@ /must/ not be a protected buffer------ -   #VUID-vkCmdCopyBufferToImage-commandBuffer-01829# If @commandBuffer@---     is an unprotected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, @dstImage@ /must/ not be a protected image------ -   #VUID-vkCmdCopyBufferToImage-commandBuffer-01830# If @commandBuffer@---     is a protected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, @dstImage@ /must/ not be an unprotected image------ -   #VUID-vkCmdCopyBufferToImage-commandBuffer-07737# If the queue---     family used to create the 'Vulkan.Core10.Handles.CommandPool' which---     @commandBuffer@ was allocated from does not support---     'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_GRAPHICS_BIT' or---     'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_COMPUTE_BIT', the---     @bufferOffset@ member of any element of @pRegions@ /must/ be a---     multiple of @4@------ -   #VUID-vkCmdCopyBufferToImage-imageOffset-07738# The @imageOffset@---     and @imageExtent@ members of each element of @pRegions@ /must/---     respect the image transfer granularity requirements of---     @commandBuffer@’s command pool’s queue family, as described in---     'Vulkan.Core10.DeviceInitialization.QueueFamilyProperties'------ -   #VUID-vkCmdCopyBufferToImage-commandBuffer-07739# If the queue---     family used to create the 'Vulkan.Core10.Handles.CommandPool' which---     @commandBuffer@ was allocated from does not support---     'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_GRAPHICS_BIT', for each---     element of @pRegions@, the @aspectMask@ member of @imageSubresource@---     /must/ not be---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' or---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'------ -   #VUID-vkCmdCopyBufferToImage-pRegions-00171# @srcBuffer@ /must/ be---     large enough to contain all buffer locations that are accessed---     according to---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#copies-buffers-images-addressing Buffer and Image Addressing>,---     for each element of @pRegions@------ -   #VUID-vkCmdCopyBufferToImage-pRegions-00173# The union of all source---     regions, and the union of all destination regions, specified by the---     elements of @pRegions@, /must/ not overlap in memory------ -   #VUID-vkCmdCopyBufferToImage-srcBuffer-00174# @srcBuffer@ /must/---     have been created with---     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_SRC_BIT'---     usage flag------ -   #VUID-vkCmdCopyBufferToImage-dstImage-01997# The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>---     of @dstImage@ /must/ contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_TRANSFER_DST_BIT'------ -   #VUID-vkCmdCopyBufferToImage-srcBuffer-00176# If @srcBuffer@ is---     non-sparse then it /must/ be bound completely and contiguously to a---     single 'Vulkan.Core10.Handles.DeviceMemory' object------ -   #VUID-vkCmdCopyBufferToImage-dstImage-00177# @dstImage@ /must/ have---     been created with---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'---     usage flag------ -   #VUID-vkCmdCopyBufferToImage-dstImageLayout-00180# @dstImageLayout@---     /must/ specify the layout of the image subresources of @dstImage@---     specified in @pRegions@ at the time this command is executed on a---     'Vulkan.Core10.Handles.Device'------ -   #VUID-vkCmdCopyBufferToImage-dstImageLayout-01396# @dstImageLayout@---     /must/ be---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR',---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL',---     or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL'------ -   #VUID-vkCmdCopyBufferToImage-pRegions-07931# If---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_depth_range_unrestricted VK_EXT_depth_range_unrestricted>---     is not enabled, for each element of @pRegions@ whose---     @imageSubresource@ contains a depth aspect, the data in @srcBuffer@---     /must/ be in the range [0,1]------ -   #VUID-vkCmdCopyBufferToImage-dstImage-07979# If @dstImage@ is of---     type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each---     element of @pRegions@, @imageOffset.y@ /must/ be @0@ and---     @imageExtent.height@ /must/ be @1@------ -   #VUID-vkCmdCopyBufferToImage-imageOffset-09104# For each element of---     @pRegions@, @imageOffset.z@ and (@imageExtent.depth@ +---     @imageOffset.z@) /must/ both be greater than or equal to @0@ and---     less than or equal to the depth of the specified @imageSubresource@---     of @dstImage@------ -   #VUID-vkCmdCopyBufferToImage-dstImage-07980# If @dstImage@ is of---     type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D' or---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element---     of @pRegions@, @imageOffset.z@ /must/ be @0@ and @imageExtent.depth@---     /must/ be @1@------ -   #VUID-vkCmdCopyBufferToImage-dstImage-07274# For each element of---     @pRegions@, @imageOffset.x@ /must/ be a multiple of the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent width>---     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@------ -   #VUID-vkCmdCopyBufferToImage-dstImage-07275# For each element of---     @pRegions@, @imageOffset.y@ /must/ be a multiple of the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent height>---     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@------ -   #VUID-vkCmdCopyBufferToImage-dstImage-07276# For each element of---     @pRegions@, @imageOffset.z@ /must/ be a multiple of the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent depth>---     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@------ -   #VUID-vkCmdCopyBufferToImage-dstImage-00207# For each element of---     @pRegions@, if the sum of @imageOffset.x@ and @extent.width@ does---     not equal the width of the subresource specified by---     @srcSubresource@, @extent.width@ /must/ be a multiple of the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent width>---     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@------ -   #VUID-vkCmdCopyBufferToImage-dstImage-00208# For each element of---     @pRegions@, if the sum of @imageOffset.y@ and @extent.height@ does---     not equal the height of the subresource specified by---     @srcSubresource@, @extent.height@ /must/ be a multiple of the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent height>---     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@------ -   #VUID-vkCmdCopyBufferToImage-dstImage-00209# For each element of---     @pRegions@, if the sum of @imageOffset.z@ and @extent.depth@ does---     not equal the depth of the subresource specified by---     @srcSubresource@, @extent.depth@ /must/ be a multiple of the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent depth>---     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@------ -   #VUID-vkCmdCopyBufferToImage-imageSubresource-09105# For each---     element of @pRegions@, @imageSubresource.aspectMask@ /must/ specify---     aspects present in @dstImage@------ -   #VUID-vkCmdCopyBufferToImage-dstImage-07981# If @dstImage@ has a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar image format>,---     then for each element of @pRegions@, @imageSubresource.aspectMask@---     /must/ be a single valid---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-planes-image-aspect multi-planar aspect mask>---     bit------ -   #VUID-vkCmdCopyBufferToImage-dstImage-07983# If @dstImage@ is of---     type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', for each element---     of @pRegions@, @imageSubresource.baseArrayLayer@ /must/ be @0@ and---     @imageSubresource.layerCount@ /must/ be @1@------ -   #VUID-vkCmdCopyBufferToImage-bufferRowLength-09106# For each element---     of @pRegions@, @bufferRowLength@ /must/ be a multiple of the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent width>---     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@------ -   #VUID-vkCmdCopyBufferToImage-bufferImageHeight-09107# For each---     element of @pRegions@, @bufferImageHeight@ /must/ be a multiple of---     the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent height>---     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@------ -   #VUID-vkCmdCopyBufferToImage-bufferRowLength-09108# For each element---     of @pRegions@, @bufferRowLength@ divided by the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent width>---     and then multiplied by the texel block size of @dstImage@ /must/ be---     less than or equal to 231-1------ -   #VUID-vkCmdCopyBufferToImage-dstImage-07975# If @dstImage@ does not---     have either a depth\/stencil format or a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,---     then for each element of @pRegions@, @bufferOffset@ /must/ be a---     multiple of the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block size>------ -   #VUID-vkCmdCopyBufferToImage-dstImage-07976# If @dstImage@ has a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,---     then for each element of @pRegions@, @bufferOffset@ /must/ be a---     multiple of the element size of the compatible format for the format---     and the @aspectMask@ of the @imageSubresource@ as defined in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatible-planes ???>------ -   #VUID-vkCmdCopyBufferToImage-dstImage-07978# If @dstImage@ has a---     depth\/stencil format, the @bufferOffset@ member of any element of---     @pRegions@ /must/ be a multiple of @4@------ == Valid Usage (Implicit)------ -   #VUID-vkCmdCopyBufferToImage-commandBuffer-parameter#---     @commandBuffer@ /must/ be a valid---     'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdCopyBufferToImage-srcBuffer-parameter# @srcBuffer@ /must/---     be a valid 'Vulkan.Core10.Handles.Buffer' handle------ -   #VUID-vkCmdCopyBufferToImage-dstImage-parameter# @dstImage@ /must/---     be a valid 'Vulkan.Core10.Handles.Image' handle------ -   #VUID-vkCmdCopyBufferToImage-dstImageLayout-parameter#---     @dstImageLayout@ /must/ be a valid---     'Vulkan.Core10.Enums.ImageLayout.ImageLayout' value------ -   #VUID-vkCmdCopyBufferToImage-pRegions-parameter# @pRegions@ /must/---     be a valid pointer to an array of @regionCount@ valid---     'BufferImageCopy' structures------ -   #VUID-vkCmdCopyBufferToImage-commandBuffer-recording#---     @commandBuffer@ /must/ be in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>------ -   #VUID-vkCmdCopyBufferToImage-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support transfer, graphics, or compute---     operations------ -   #VUID-vkCmdCopyBufferToImage-renderpass# This command /must/ only be---     called outside of a render pass instance------ -   #VUID-vkCmdCopyBufferToImage-videocoding# This command /must/ only---     be called outside of a video coding scope------ -   #VUID-vkCmdCopyBufferToImage-regionCount-arraylength# @regionCount@---     /must/ be greater than @0@------ -   #VUID-vkCmdCopyBufferToImage-commonparent# Each of @commandBuffer@,---     @dstImage@, and @srcBuffer@ /must/ have been created, allocated, or---     retrieved from the same 'Vulkan.Core10.Handles.Device'------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |--- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+--- | Primary                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Transfer                                                                                                              | Action                                                                                                                                 |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Graphics                                                                                                              |                                                                                                                                        |--- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Compute                                                                                                               |                                                                                                                                        |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.Buffer', 'BufferImageCopy',--- 'Vulkan.Core10.Handles.CommandBuffer', 'Vulkan.Core10.Handles.Image',--- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'-cmdCopyBufferToImage :: forall io-                      . (MonadIO io)-                     => -- | @commandBuffer@ is the command buffer into which the command will be-                        -- recorded.-                        CommandBuffer-                     -> -- | @srcBuffer@ is the source buffer.-                        ("srcBuffer" ::: Buffer)-                     -> -- | @dstImage@ is the destination image.-                        ("dstImage" ::: Image)-                     -> -- | @dstImageLayout@ is the layout of the destination image subresources for-                        -- the copy.-                        ("dstImageLayout" ::: ImageLayout)-                     -> -- | @pRegions@ is a pointer to an array of 'BufferImageCopy' structures-                        -- specifying the regions to copy.-                        ("regions" ::: Vector BufferImageCopy)-                     -> io ()-cmdCopyBufferToImage commandBuffer-                       srcBuffer-                       dstImage-                       dstImageLayout-                       regions = liftIO . evalContT $ do-  let vkCmdCopyBufferToImagePtr = pVkCmdCopyBufferToImage (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  lift $ unless (vkCmdCopyBufferToImagePtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdCopyBufferToImage is null" Nothing Nothing-  let vkCmdCopyBufferToImage' = mkVkCmdCopyBufferToImage vkCmdCopyBufferToImagePtr-  pPRegions <- ContT $ allocaBytes @BufferImageCopy ((Data.Vector.length (regions)) * 56)-  lift $ Data.Vector.imapM_ (\i e -> poke (pPRegions `plusPtr` (56 * (i)) :: Ptr BufferImageCopy) (e)) (regions)-  lift $ traceAroundEvent "vkCmdCopyBufferToImage" (vkCmdCopyBufferToImage'-                                                      (commandBufferHandle (commandBuffer))-                                                      (srcBuffer)-                                                      (dstImage)-                                                      (dstImageLayout)-                                                      ((fromIntegral (Data.Vector.length $ (regions)) :: Word32))-                                                      (pPRegions))-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdCopyImageToBuffer-  :: FunPtr (Ptr CommandBuffer_T -> Image -> ImageLayout -> Buffer -> Word32 -> Ptr BufferImageCopy -> IO ()) -> Ptr CommandBuffer_T -> Image -> ImageLayout -> Buffer -> Word32 -> Ptr BufferImageCopy -> IO ()---- | vkCmdCopyImageToBuffer - Copy image data into a buffer------ = Description------ Each source region specified by @pRegions@ is copied from the source--- image to the destination region of the destination buffer according to--- the--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#copies-buffers-images-addressing addressing calculations>--- for each resource. If any of the specified regions in @srcImage@--- overlaps in memory with any of the specified regions in @dstBuffer@,--- values read from those overlapping regions are undefined.------ Copy regions for the image /must/ be aligned to a multiple of the texel--- block extent in each dimension, except at the edges of the image, where--- region extents /must/ match the edge of the image.------ == Valid Usage------ -   #VUID-vkCmdCopyImageToBuffer-srcImage-07966# If @srcImage@ is---     non-sparse then the image or the specified /disjoint/ plane /must/---     be bound completely and contiguously to a single---     'Vulkan.Core10.Handles.DeviceMemory' object------ -   #VUID-vkCmdCopyImageToBuffer-imageSubresource-07967# The---     @imageSubresource.mipLevel@ member of each element of @pRegions@---     /must/ be less than the @mipLevels@ specified in---     'Vulkan.Core10.Image.ImageCreateInfo' when @srcImage@ was created------ -   #VUID-vkCmdCopyImageToBuffer-imageSubresource-07968# The---     @imageSubresource.baseArrayLayer@ + @imageSubresource.layerCount@ of---     each element of @pRegions@ , if @imageSubresource.layerCount@ is not---     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance5 maintenance5>---     is not enabled, /must/ be less than or equal to the @arrayLayers@---     specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @srcImage@---     was created------ -   #VUID-vkCmdCopyImageToBuffer-srcImage-07969# @srcImage@ /must/ not---     have been created with @flags@ containing---     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'------ -   #VUID-vkCmdCopyImageToBuffer-imageSubresource-07970# The image---     region specified by each element of @pRegions@ /must/ be contained---     within the specified @imageSubresource@ of @srcImage@------ -   #VUID-vkCmdCopyImageToBuffer-imageSubresource-07971# For each---     element of @pRegions@, @imageOffset.x@ and (@imageExtent.width@ +---     @imageOffset.x@) /must/ both be greater than or equal to @0@ and---     less than or equal to the width of the specified @imageSubresource@---     of @srcImage@------ -   #VUID-vkCmdCopyImageToBuffer-imageSubresource-07972# For each---     element of @pRegions@, @imageOffset.y@ and (@imageExtent.height@ +---     @imageOffset.y@) /must/ both be greater than or equal to @0@ and---     less than or equal to the height of the specified @imageSubresource@---     of @srcImage@------ -   #VUID-vkCmdCopyImageToBuffer-srcImage-07973# @srcImage@ /must/ have---     a sample count equal to---     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'------ -   #VUID-vkCmdCopyImageToBuffer-commandBuffer-01831# If @commandBuffer@---     is an unprotected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, @srcImage@ /must/ not be a protected image------ -   #VUID-vkCmdCopyImageToBuffer-commandBuffer-01832# If @commandBuffer@---     is an unprotected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, @dstBuffer@ /must/ not be a protected buffer------ -   #VUID-vkCmdCopyImageToBuffer-commandBuffer-01833# If @commandBuffer@---     is a protected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, @dstBuffer@ /must/ not be an unprotected buffer------ -   #VUID-vkCmdCopyImageToBuffer-commandBuffer-07746# If the queue---     family used to create the 'Vulkan.Core10.Handles.CommandPool' which---     @commandBuffer@ was allocated from does not support---     'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_GRAPHICS_BIT' or---     'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_COMPUTE_BIT', the---     @bufferOffset@ member of any element of @pRegions@ /must/ be a---     multiple of @4@------ -   #VUID-vkCmdCopyImageToBuffer-imageOffset-07747# The @imageOffset@---     and @imageExtent@ members of each element of @pRegions@ /must/---     respect the image transfer granularity requirements of---     @commandBuffer@’s command pool’s queue family, as described in---     'Vulkan.Core10.DeviceInitialization.QueueFamilyProperties'------ -   #VUID-vkCmdCopyImageToBuffer-pRegions-00183# @dstBuffer@ /must/ be---     large enough to contain all buffer locations that are accessed---     according to---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#copies-buffers-images-addressing Buffer and Image Addressing>,---     for each element of @pRegions@------ -   #VUID-vkCmdCopyImageToBuffer-pRegions-00184# The union of all source---     regions, and the union of all destination regions, specified by the---     elements of @pRegions@, /must/ not overlap in memory------ -   #VUID-vkCmdCopyImageToBuffer-srcImage-00186# @srcImage@ /must/ have---     been created with---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_SRC_BIT'---     usage flag------ -   #VUID-vkCmdCopyImageToBuffer-srcImage-01998# The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>---     of @srcImage@ /must/ contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_TRANSFER_SRC_BIT'------ -   #VUID-vkCmdCopyImageToBuffer-dstBuffer-00191# @dstBuffer@ /must/---     have been created with---     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_DST_BIT'---     usage flag------ -   #VUID-vkCmdCopyImageToBuffer-dstBuffer-00192# If @dstBuffer@ is---     non-sparse then it /must/ be bound completely and contiguously to a---     single 'Vulkan.Core10.Handles.DeviceMemory' object------ -   #VUID-vkCmdCopyImageToBuffer-srcImageLayout-00189# @srcImageLayout@---     /must/ specify the layout of the image subresources of @srcImage@---     specified in @pRegions@ at the time this command is executed on a---     'Vulkan.Core10.Handles.Device'------ -   #VUID-vkCmdCopyImageToBuffer-srcImageLayout-01397# @srcImageLayout@---     /must/ be---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR',---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL',---     or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL'------ -   #VUID-vkCmdCopyImageToBuffer-srcImage-07979# If @srcImage@ is of---     type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each---     element of @pRegions@, @imageOffset.y@ /must/ be @0@ and---     @imageExtent.height@ /must/ be @1@------ -   #VUID-vkCmdCopyImageToBuffer-imageOffset-09104# For each element of---     @pRegions@, @imageOffset.z@ and (@imageExtent.depth@ +---     @imageOffset.z@) /must/ both be greater than or equal to @0@ and---     less than or equal to the depth of the specified @imageSubresource@---     of @srcImage@------ -   #VUID-vkCmdCopyImageToBuffer-srcImage-07980# If @srcImage@ is of---     type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D' or---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element---     of @pRegions@, @imageOffset.z@ /must/ be @0@ and @imageExtent.depth@---     /must/ be @1@------ -   #VUID-vkCmdCopyImageToBuffer-srcImage-07274# For each element of---     @pRegions@, @imageOffset.x@ /must/ be a multiple of the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent width>---     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@------ -   #VUID-vkCmdCopyImageToBuffer-srcImage-07275# For each element of---     @pRegions@, @imageOffset.y@ /must/ be a multiple of the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent height>---     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@------ -   #VUID-vkCmdCopyImageToBuffer-srcImage-07276# For each element of---     @pRegions@, @imageOffset.z@ /must/ be a multiple of the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent depth>---     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@------ -   #VUID-vkCmdCopyImageToBuffer-srcImage-00207# For each element of---     @pRegions@, if the sum of @imageOffset.x@ and @extent.width@ does---     not equal the width of the subresource specified by---     @srcSubresource@, @extent.width@ /must/ be a multiple of the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent width>---     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@------ -   #VUID-vkCmdCopyImageToBuffer-srcImage-00208# For each element of---     @pRegions@, if the sum of @imageOffset.y@ and @extent.height@ does---     not equal the height of the subresource specified by---     @srcSubresource@, @extent.height@ /must/ be a multiple of the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent height>---     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@------ -   #VUID-vkCmdCopyImageToBuffer-srcImage-00209# For each element of---     @pRegions@, if the sum of @imageOffset.z@ and @extent.depth@ does---     not equal the depth of the subresource specified by---     @srcSubresource@, @extent.depth@ /must/ be a multiple of the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent depth>---     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@------ -   #VUID-vkCmdCopyImageToBuffer-imageSubresource-09105# For each---     element of @pRegions@, @imageSubresource.aspectMask@ /must/ specify---     aspects present in @srcImage@------ -   #VUID-vkCmdCopyImageToBuffer-srcImage-07981# If @srcImage@ has a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar image format>,---     then for each element of @pRegions@, @imageSubresource.aspectMask@---     /must/ be a single valid---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-planes-image-aspect multi-planar aspect mask>---     bit------ -   #VUID-vkCmdCopyImageToBuffer-srcImage-07983# If @srcImage@ is of---     type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', for each element---     of @pRegions@, @imageSubresource.baseArrayLayer@ /must/ be @0@ and---     @imageSubresource.layerCount@ /must/ be @1@------ -   #VUID-vkCmdCopyImageToBuffer-bufferRowLength-09106# For each element---     of @pRegions@, @bufferRowLength@ /must/ be a multiple of the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent width>---     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@------ -   #VUID-vkCmdCopyImageToBuffer-bufferImageHeight-09107# For each---     element of @pRegions@, @bufferImageHeight@ /must/ be a multiple of---     the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent height>---     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@------ -   #VUID-vkCmdCopyImageToBuffer-bufferRowLength-09108# For each element---     of @pRegions@, @bufferRowLength@ divided by the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent width>---     and then multiplied by the texel block size of @srcImage@ /must/ be---     less than or equal to 231-1------ -   #VUID-vkCmdCopyImageToBuffer-srcImage-07975# If @srcImage@ does not---     have either a depth\/stencil format or a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,---     then for each element of @pRegions@, @bufferOffset@ /must/ be a---     multiple of the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block size>------ -   #VUID-vkCmdCopyImageToBuffer-srcImage-07976# If @srcImage@ has a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,---     then for each element of @pRegions@, @bufferOffset@ /must/ be a---     multiple of the element size of the compatible format for the format---     and the @aspectMask@ of the @imageSubresource@ as defined in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatible-planes ???>------ -   #VUID-vkCmdCopyImageToBuffer-srcImage-07978# If @srcImage@ has a---     depth\/stencil format, the @bufferOffset@ member of any element of---     @pRegions@ /must/ be a multiple of @4@------ == Valid Usage (Implicit)------ -   #VUID-vkCmdCopyImageToBuffer-commandBuffer-parameter#---     @commandBuffer@ /must/ be a valid---     'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdCopyImageToBuffer-srcImage-parameter# @srcImage@ /must/---     be a valid 'Vulkan.Core10.Handles.Image' handle------ -   #VUID-vkCmdCopyImageToBuffer-srcImageLayout-parameter#---     @srcImageLayout@ /must/ be a valid---     'Vulkan.Core10.Enums.ImageLayout.ImageLayout' value------ -   #VUID-vkCmdCopyImageToBuffer-dstBuffer-parameter# @dstBuffer@ /must/---     be a valid 'Vulkan.Core10.Handles.Buffer' handle------ -   #VUID-vkCmdCopyImageToBuffer-pRegions-parameter# @pRegions@ /must/---     be a valid pointer to an array of @regionCount@ valid---     'BufferImageCopy' structures------ -   #VUID-vkCmdCopyImageToBuffer-commandBuffer-recording#---     @commandBuffer@ /must/ be in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>------ -   #VUID-vkCmdCopyImageToBuffer-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support transfer, graphics, or compute---     operations------ -   #VUID-vkCmdCopyImageToBuffer-renderpass# This command /must/ only be---     called outside of a render pass instance------ -   #VUID-vkCmdCopyImageToBuffer-videocoding# This command /must/ only---     be called outside of a video coding scope------ -   #VUID-vkCmdCopyImageToBuffer-regionCount-arraylength# @regionCount@---     /must/ be greater than @0@------ -   #VUID-vkCmdCopyImageToBuffer-commonparent# Each of @commandBuffer@,---     @dstBuffer@, and @srcImage@ /must/ have been created, allocated, or---     retrieved from the same 'Vulkan.Core10.Handles.Device'------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |--- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+--- | Primary                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Transfer                                                                                                              | Action                                                                                                                                 |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Graphics                                                                                                              |                                                                                                                                        |--- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Compute                                                                                                               |                                                                                                                                        |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.Buffer', 'BufferImageCopy',--- 'Vulkan.Core10.Handles.CommandBuffer', 'Vulkan.Core10.Handles.Image',--- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'-cmdCopyImageToBuffer :: forall io-                      . (MonadIO io)-                     => -- | @commandBuffer@ is the command buffer into which the command will be-                        -- recorded.-                        CommandBuffer-                     -> -- | @srcImage@ is the source image.-                        ("srcImage" ::: Image)-                     -> -- | @srcImageLayout@ is the layout of the source image subresources for the-                        -- copy.-                        ("srcImageLayout" ::: ImageLayout)-                     -> -- | @dstBuffer@ is the destination buffer.-                        ("dstBuffer" ::: Buffer)-                     -> -- | @pRegions@ is a pointer to an array of 'BufferImageCopy' structures-                        -- specifying the regions to copy.-                        ("regions" ::: Vector BufferImageCopy)-                     -> io ()-cmdCopyImageToBuffer commandBuffer-                       srcImage-                       srcImageLayout-                       dstBuffer-                       regions = liftIO . evalContT $ do-  let vkCmdCopyImageToBufferPtr = pVkCmdCopyImageToBuffer (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  lift $ unless (vkCmdCopyImageToBufferPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdCopyImageToBuffer is null" Nothing Nothing-  let vkCmdCopyImageToBuffer' = mkVkCmdCopyImageToBuffer vkCmdCopyImageToBufferPtr-  pPRegions <- ContT $ allocaBytes @BufferImageCopy ((Data.Vector.length (regions)) * 56)-  lift $ Data.Vector.imapM_ (\i e -> poke (pPRegions `plusPtr` (56 * (i)) :: Ptr BufferImageCopy) (e)) (regions)-  lift $ traceAroundEvent "vkCmdCopyImageToBuffer" (vkCmdCopyImageToBuffer'-                                                      (commandBufferHandle (commandBuffer))-                                                      (srcImage)-                                                      (srcImageLayout)-                                                      (dstBuffer)-                                                      ((fromIntegral (Data.Vector.length $ (regions)) :: Word32))-                                                      (pPRegions))-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdUpdateBuffer-  :: FunPtr (Ptr CommandBuffer_T -> Buffer -> DeviceSize -> DeviceSize -> Ptr () -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> DeviceSize -> DeviceSize -> Ptr () -> IO ()---- | vkCmdUpdateBuffer - Update a buffer’s contents from host memory------ = Description------ @dataSize@ /must/ be less than or equal to 65536 bytes. For larger--- updates, applications /can/ use buffer to buffer--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#copies-buffers copies>.------ Note------ Buffer updates performed with 'cmdUpdateBuffer' first copy the data into--- command buffer memory when the command is recorded (which requires--- additional storage and may incur an additional allocation), and then--- copy the data from the command buffer into @dstBuffer@ when the command--- is executed on a device.------ The additional cost of this functionality compared to--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#copies-buffers buffer to buffer copies>--- means it is only recommended for very small amounts of data, and is why--- it is limited to only 65536 bytes.------ Applications /can/ work around this by issuing multiple--- 'cmdUpdateBuffer' commands to different ranges of the same buffer, but--- it is strongly recommended that they /should/ not.------ The source data is copied from the user pointer to the command buffer--- when the command is called.------ 'cmdUpdateBuffer' is only allowed outside of a render pass. This command--- is treated as a “transfer” operation for the purposes of synchronization--- barriers. The--- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_DST_BIT'--- /must/ be specified in @usage@ of--- 'Vulkan.Core10.Buffer.BufferCreateInfo' in order for the buffer to be--- compatible with 'cmdUpdateBuffer'.------ == Valid Usage------ -   #VUID-vkCmdUpdateBuffer-dstOffset-00032# @dstOffset@ /must/ be less---     than the size of @dstBuffer@------ -   #VUID-vkCmdUpdateBuffer-dataSize-00033# @dataSize@ /must/ be less---     than or equal to the size of @dstBuffer@ minus @dstOffset@------ -   #VUID-vkCmdUpdateBuffer-dstBuffer-00034# @dstBuffer@ /must/ have---     been created with---     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_DST_BIT'---     usage flag------ -   #VUID-vkCmdUpdateBuffer-dstBuffer-00035# If @dstBuffer@ is---     non-sparse then it /must/ be bound completely and contiguously to a---     single 'Vulkan.Core10.Handles.DeviceMemory' object------ -   #VUID-vkCmdUpdateBuffer-dstOffset-00036# @dstOffset@ /must/ be a---     multiple of @4@------ -   #VUID-vkCmdUpdateBuffer-dataSize-00037# @dataSize@ /must/ be less---     than or equal to @65536@------ -   #VUID-vkCmdUpdateBuffer-dataSize-00038# @dataSize@ /must/ be a---     multiple of @4@------ -   #VUID-vkCmdUpdateBuffer-commandBuffer-01813# If @commandBuffer@ is---     an unprotected command buffer and---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, @dstBuffer@ /must/ not be a protected buffer------ -   #VUID-vkCmdUpdateBuffer-commandBuffer-01814# If @commandBuffer@ is a---     protected command buffer and---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, @dstBuffer@ /must/ not be an unprotected buffer------ == Valid Usage (Implicit)------ -   #VUID-vkCmdUpdateBuffer-commandBuffer-parameter# @commandBuffer@---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdUpdateBuffer-dstBuffer-parameter# @dstBuffer@ /must/ be a---     valid 'Vulkan.Core10.Handles.Buffer' handle------ -   #VUID-vkCmdUpdateBuffer-pData-parameter# @pData@ /must/ be a valid---     pointer to an array of @dataSize@ bytes------ -   #VUID-vkCmdUpdateBuffer-commandBuffer-recording# @commandBuffer@---     /must/ be in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>------ -   #VUID-vkCmdUpdateBuffer-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support transfer, graphics, or compute---     operations------ -   #VUID-vkCmdUpdateBuffer-renderpass# This command /must/ only be---     called outside of a render pass instance------ -   #VUID-vkCmdUpdateBuffer-videocoding# This command /must/ only be---     called outside of a video coding scope------ -   #VUID-vkCmdUpdateBuffer-dataSize-arraylength# @dataSize@ /must/ be---     greater than @0@------ -   #VUID-vkCmdUpdateBuffer-commonparent# Both of @commandBuffer@, and---     @dstBuffer@ /must/ have been created, allocated, or retrieved from---     the same 'Vulkan.Core10.Handles.Device'------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |--- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+--- | Primary                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Transfer                                                                                                              | Action                                                                                                                                 |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Graphics                                                                                                              |                                                                                                                                        |--- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Compute                                                                                                               |                                                                                                                                        |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',--- 'Vulkan.Core10.FundamentalTypes.DeviceSize'-cmdUpdateBuffer :: forall io-                 . (MonadIO io)-                => -- | @commandBuffer@ is the command buffer into which the command will be-                   -- recorded.-                   CommandBuffer-                -> -- | @dstBuffer@ is a handle to the buffer to be updated.-                   ("dstBuffer" ::: Buffer)-                -> -- | @dstOffset@ is the byte offset into the buffer to start updating, and-                   -- /must/ be a multiple of 4.-                   ("dstOffset" ::: DeviceSize)-                -> -- | @dataSize@ is the number of bytes to update, and /must/ be a multiple of-                   -- 4.-                   ("dataSize" ::: DeviceSize)-                -> -- | @pData@ is a pointer to the source data for the buffer update, and-                   -- /must/ be at least @dataSize@ bytes in size.-                   ("data" ::: Ptr ())-                -> io ()-cmdUpdateBuffer commandBuffer dstBuffer dstOffset dataSize data' = liftIO $ do-  let vkCmdUpdateBufferPtr = pVkCmdUpdateBuffer (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  unless (vkCmdUpdateBufferPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdUpdateBuffer is null" Nothing Nothing-  let vkCmdUpdateBuffer' = mkVkCmdUpdateBuffer vkCmdUpdateBufferPtr-  traceAroundEvent "vkCmdUpdateBuffer" (vkCmdUpdateBuffer'-                                          (commandBufferHandle (commandBuffer))-                                          (dstBuffer)-                                          (dstOffset)-                                          (dataSize)-                                          (data'))-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdFillBuffer-  :: FunPtr (Ptr CommandBuffer_T -> Buffer -> DeviceSize -> DeviceSize -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> DeviceSize -> DeviceSize -> Word32 -> IO ()---- | vkCmdFillBuffer - Fill a region of a buffer with a fixed value------ = Description------ 'cmdFillBuffer' is treated as a “transfer” operation for the purposes of--- synchronization barriers. The--- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_DST_BIT'--- /must/ be specified in @usage@ of--- 'Vulkan.Core10.Buffer.BufferCreateInfo' in order for the buffer to be--- compatible with 'cmdFillBuffer'.------ == Valid Usage------ -   #VUID-vkCmdFillBuffer-dstOffset-00024# @dstOffset@ /must/ be less---     than the size of @dstBuffer@------ -   #VUID-vkCmdFillBuffer-dstOffset-00025# @dstOffset@ /must/ be a---     multiple of @4@------ -   #VUID-vkCmdFillBuffer-size-00026# If @size@ is not equal to---     'Vulkan.Core10.APIConstants.WHOLE_SIZE', @size@ /must/ be greater---     than @0@------ -   #VUID-vkCmdFillBuffer-size-00027# If @size@ is not equal to---     'Vulkan.Core10.APIConstants.WHOLE_SIZE', @size@ /must/ be less than---     or equal to the size of @dstBuffer@ minus @dstOffset@------ -   #VUID-vkCmdFillBuffer-size-00028# If @size@ is not equal to---     'Vulkan.Core10.APIConstants.WHOLE_SIZE', @size@ /must/ be a multiple---     of @4@------ -   #VUID-vkCmdFillBuffer-dstBuffer-00029# @dstBuffer@ /must/ have been---     created with---     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_DST_BIT'---     usage flag------ -   #VUID-vkCmdFillBuffer-apiVersion-07894# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance1 VK_KHR_maintenance1>---     extension is not enabled and---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceProperties'::@apiVersion@---     is less than Vulkan 1.1, the 'Vulkan.Core10.Handles.CommandPool'---     that @commandBuffer@ was allocated from /must/ support graphics or---     compute operations------ -   #VUID-vkCmdFillBuffer-dstBuffer-00031# If @dstBuffer@ is non-sparse---     then it /must/ be bound completely and contiguously to a single---     'Vulkan.Core10.Handles.DeviceMemory' object------ -   #VUID-vkCmdFillBuffer-commandBuffer-01811# If @commandBuffer@ is an---     unprotected command buffer and---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, @dstBuffer@ /must/ not be a protected buffer------ -   #VUID-vkCmdFillBuffer-commandBuffer-01812# If @commandBuffer@ is a---     protected command buffer and---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, @dstBuffer@ /must/ not be an unprotected buffer------ == Valid Usage (Implicit)------ -   #VUID-vkCmdFillBuffer-commandBuffer-parameter# @commandBuffer@---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdFillBuffer-dstBuffer-parameter# @dstBuffer@ /must/ be a---     valid 'Vulkan.Core10.Handles.Buffer' handle------ -   #VUID-vkCmdFillBuffer-commandBuffer-recording# @commandBuffer@---     /must/ be in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>------ -   #VUID-vkCmdFillBuffer-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support transfer, graphics or compute---     operations------ -   #VUID-vkCmdFillBuffer-renderpass# This command /must/ only be called---     outside of a render pass instance------ -   #VUID-vkCmdFillBuffer-videocoding# This command /must/ only be---     called outside of a video coding scope------ -   #VUID-vkCmdFillBuffer-commonparent# Both of @commandBuffer@, and---     @dstBuffer@ /must/ have been created, allocated, or retrieved from---     the same 'Vulkan.Core10.Handles.Device'------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |--- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+--- | Primary                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Transfer                                                                                                              | Action                                                                                                                                 |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Graphics                                                                                                              |                                                                                                                                        |--- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Compute                                                                                                               |                                                                                                                                        |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',--- 'Vulkan.Core10.FundamentalTypes.DeviceSize'-cmdFillBuffer :: forall io-               . (MonadIO io)-              => -- | @commandBuffer@ is the command buffer into which the command will be-                 -- recorded.-                 CommandBuffer-              -> -- | @dstBuffer@ is the buffer to be filled.-                 ("dstBuffer" ::: Buffer)-              -> -- | @dstOffset@ is the byte offset into the buffer at which to start-                 -- filling, and /must/ be a multiple of 4.-                 ("dstOffset" ::: DeviceSize)-              -> -- | @size@ is the number of bytes to fill, and /must/ be either a multiple-                 -- of 4, or 'Vulkan.Core10.APIConstants.WHOLE_SIZE' to fill the range from-                 -- @offset@ to the end of the buffer. If-                 -- 'Vulkan.Core10.APIConstants.WHOLE_SIZE' is used and the remaining size-                 -- of the buffer is not a multiple of 4, then the nearest smaller multiple-                 -- is used.-                 DeviceSize-              -> -- | @data@ is the 4-byte word written repeatedly to the buffer to fill-                 -- @size@ bytes of data. The data word is written to memory according to-                 -- the host endianness.-                 ("data" ::: Word32)-              -> io ()-cmdFillBuffer commandBuffer dstBuffer dstOffset size data' = liftIO $ do-  let vkCmdFillBufferPtr = pVkCmdFillBuffer (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  unless (vkCmdFillBufferPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdFillBuffer is null" Nothing Nothing-  let vkCmdFillBuffer' = mkVkCmdFillBuffer vkCmdFillBufferPtr-  traceAroundEvent "vkCmdFillBuffer" (vkCmdFillBuffer'-                                        (commandBufferHandle (commandBuffer))-                                        (dstBuffer)-                                        (dstOffset)-                                        (size)-                                        (data'))-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdClearColorImage-  :: FunPtr (Ptr CommandBuffer_T -> Image -> ImageLayout -> Ptr ClearColorValue -> Word32 -> Ptr ImageSubresourceRange -> IO ()) -> Ptr CommandBuffer_T -> Image -> ImageLayout -> Ptr ClearColorValue -> Word32 -> Ptr ImageSubresourceRange -> IO ()---- | vkCmdClearColorImage - Clear regions of a color image------ = Description------ Each specified range in @pRanges@ is cleared to the value specified by--- @pColor@.------ == Valid Usage------ -   #VUID-vkCmdClearColorImage-image-01993# The---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-format-features format features>---     of @image@ /must/ contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_TRANSFER_DST_BIT'------ -   #VUID-vkCmdClearColorImage-image-00002# @image@ /must/ have been---     created with---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'---     usage flag------ -   #VUID-vkCmdClearColorImage-image-01545# @image@ /must/ not use any---     of the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion formats that require a sampler Y′CBCR conversion>------ -   #VUID-vkCmdClearColorImage-image-00003# If @image@ is non-sparse---     then it /must/ be bound completely and contiguously to a single---     'Vulkan.Core10.Handles.DeviceMemory' object------ -   #VUID-vkCmdClearColorImage-imageLayout-00004# @imageLayout@ /must/---     specify the layout of the image subresource ranges of @image@---     specified in @pRanges@ at the time this command is executed on a---     'Vulkan.Core10.Handles.Device'------ -   #VUID-vkCmdClearColorImage-imageLayout-01394# @imageLayout@ /must/---     be---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR',---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL'---     or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL'------ -   #VUID-vkCmdClearColorImage-aspectMask-02498# The---     'Vulkan.Core10.ImageView.ImageSubresourceRange'::@aspectMask@---     members of the elements of the @pRanges@ array /must/ each only---     include---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'------ -   #VUID-vkCmdClearColorImage-baseMipLevel-01470# The---     'Vulkan.Core10.ImageView.ImageSubresourceRange'::@baseMipLevel@---     members of the elements of the @pRanges@ array /must/ each be less---     than the @mipLevels@ specified in---     'Vulkan.Core10.Image.ImageCreateInfo' when @image@ was created------ -   #VUID-vkCmdClearColorImage-pRanges-01692# For each---     'Vulkan.Core10.ImageView.ImageSubresourceRange' element of---     @pRanges@, if the @levelCount@ member is not---     'Vulkan.Core10.APIConstants.REMAINING_MIP_LEVELS', then---     @baseMipLevel@ + @levelCount@ /must/ be less than or equal to the---     @mipLevels@ specified in 'Vulkan.Core10.Image.ImageCreateInfo' when---     @image@ was created------ -   #VUID-vkCmdClearColorImage-baseArrayLayer-01472# The---     'Vulkan.Core10.ImageView.ImageSubresourceRange'::@baseArrayLayer@---     members of the elements of the @pRanges@ array /must/ each be less---     than the @arrayLayers@ specified in---     'Vulkan.Core10.Image.ImageCreateInfo' when @image@ was created------ -   #VUID-vkCmdClearColorImage-pRanges-01693# For each---     'Vulkan.Core10.ImageView.ImageSubresourceRange' element of---     @pRanges@, if the @layerCount@ member is not---     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS', then---     @baseArrayLayer@ + @layerCount@ /must/ be less than or equal to the---     @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'---     when @image@ was created------ -   #VUID-vkCmdClearColorImage-image-00007# @image@ /must/ not have a---     compressed or depth\/stencil format------ -   #VUID-vkCmdClearColorImage-pColor-04961# @pColor@ /must/ be a valid---     pointer to a 'ClearColorValue' union------ -   #VUID-vkCmdClearColorImage-commandBuffer-01805# If @commandBuffer@---     is an unprotected command buffer and---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, @image@ /must/ not be a protected image------ -   #VUID-vkCmdClearColorImage-commandBuffer-01806# If @commandBuffer@---     is a protected command buffer and---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, /must/ not be an unprotected image------ == Valid Usage (Implicit)------ -   #VUID-vkCmdClearColorImage-commandBuffer-parameter# @commandBuffer@---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdClearColorImage-image-parameter# @image@ /must/ be a---     valid 'Vulkan.Core10.Handles.Image' handle------ -   #VUID-vkCmdClearColorImage-imageLayout-parameter# @imageLayout@---     /must/ be a valid 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'---     value------ -   #VUID-vkCmdClearColorImage-pRanges-parameter# @pRanges@ /must/ be a---     valid pointer to an array of @rangeCount@ valid---     'Vulkan.Core10.ImageView.ImageSubresourceRange' structures------ -   #VUID-vkCmdClearColorImage-commandBuffer-recording# @commandBuffer@---     /must/ be in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>------ -   #VUID-vkCmdClearColorImage-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics, or compute operations------ -   #VUID-vkCmdClearColorImage-renderpass# This command /must/ only be---     called outside of a render pass instance------ -   #VUID-vkCmdClearColorImage-videocoding# This command /must/ only be---     called outside of a video coding scope------ -   #VUID-vkCmdClearColorImage-rangeCount-arraylength# @rangeCount@---     /must/ be greater than @0@------ -   #VUID-vkCmdClearColorImage-commonparent# Both of @commandBuffer@,---     and @image@ /must/ have been created, allocated, or retrieved from---     the same 'Vulkan.Core10.Handles.Device'------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |--- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+--- | Primary                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Compute                                                                                                               |                                                                                                                                        |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'ClearColorValue', 'Vulkan.Core10.Handles.CommandBuffer',--- 'Vulkan.Core10.Handles.Image',--- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout',--- 'Vulkan.Core10.ImageView.ImageSubresourceRange'-cmdClearColorImage :: forall io-                    . (MonadIO io)-                   => -- | @commandBuffer@ is the command buffer into which the command will be-                      -- recorded.-                      CommandBuffer-                   -> -- | @image@ is the image to be cleared.-                      Image-                   -> -- | @imageLayout@ specifies the current layout of the image subresource-                      -- ranges to be cleared, and /must/ be-                      -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR',-                      -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL' or-                      -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL'.-                      ImageLayout-                   -> -- | @pColor@ is a pointer to a 'ClearColorValue' structure containing the-                      -- values that the image subresource ranges will be cleared to (see-                      -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#clears-values>-                      -- below).-                      ClearColorValue-                   -> -- | @pRanges@ is a pointer to an array of-                      -- 'Vulkan.Core10.ImageView.ImageSubresourceRange' structures describing a-                      -- range of mipmap levels, array layers, and aspects to be cleared, as-                      -- described in-                      -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views Image Views>.-                      ("ranges" ::: Vector ImageSubresourceRange)-                   -> io ()-cmdClearColorImage commandBuffer-                     image-                     imageLayout-                     color-                     ranges = liftIO . evalContT $ do-  let vkCmdClearColorImagePtr = pVkCmdClearColorImage (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  lift $ unless (vkCmdClearColorImagePtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdClearColorImage is null" Nothing Nothing-  let vkCmdClearColorImage' = mkVkCmdClearColorImage vkCmdClearColorImagePtr-  pColor <- ContT $ withCStruct (color)-  pPRanges <- ContT $ allocaBytes @ImageSubresourceRange ((Data.Vector.length (ranges)) * 20)-  lift $ Data.Vector.imapM_ (\i e -> poke (pPRanges `plusPtr` (20 * (i)) :: Ptr ImageSubresourceRange) (e)) (ranges)-  lift $ traceAroundEvent "vkCmdClearColorImage" (vkCmdClearColorImage'-                                                    (commandBufferHandle (commandBuffer))-                                                    (image)-                                                    (imageLayout)-                                                    pColor-                                                    ((fromIntegral (Data.Vector.length $ (ranges)) :: Word32))-                                                    (pPRanges))-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdClearDepthStencilImage-  :: FunPtr (Ptr CommandBuffer_T -> Image -> ImageLayout -> Ptr ClearDepthStencilValue -> Word32 -> Ptr ImageSubresourceRange -> IO ()) -> Ptr CommandBuffer_T -> Image -> ImageLayout -> Ptr ClearDepthStencilValue -> Word32 -> Ptr ImageSubresourceRange -> IO ()---- | vkCmdClearDepthStencilImage - Fill regions of a combined depth\/stencil--- image------ == Valid Usage------ -   #VUID-vkCmdClearDepthStencilImage-image-01994# The---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-format-features format features>---     of @image@ /must/ contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_TRANSFER_DST_BIT'------ -   #VUID-vkCmdClearDepthStencilImage-pRanges-02658# If the @aspect@---     member of any element of @pRanges@ includes---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT',---     and @image@ was created with---     <VkImageStencilUsageCreateInfo.html separate stencil usage>,---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'---     /must/ have been included in the---     'Vulkan.Core12.Promoted_From_VK_EXT_separate_stencil_usage.ImageStencilUsageCreateInfo'::@stencilUsage@---     used to create @image@------ -   #VUID-vkCmdClearDepthStencilImage-pRanges-02659# If the @aspect@---     member of any element of @pRanges@ includes---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT',---     and @image@ was not created with---     <VkImageStencilUsageCreateInfo.html separate stencil usage>,---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'---     /must/ have been included in the---     'Vulkan.Core10.Image.ImageCreateInfo'::@usage@ used to create---     @image@------ -   #VUID-vkCmdClearDepthStencilImage-pRanges-02660# If the @aspect@---     member of any element of @pRanges@ includes---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT',---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'---     /must/ have been included in the---     'Vulkan.Core10.Image.ImageCreateInfo'::@usage@ used to create---     @image@------ -   #VUID-vkCmdClearDepthStencilImage-image-00010# If @image@ is---     non-sparse then it /must/ be bound completely and contiguously to a---     single 'Vulkan.Core10.Handles.DeviceMemory' object------ -   #VUID-vkCmdClearDepthStencilImage-imageLayout-00011# @imageLayout@---     /must/ specify the layout of the image subresource ranges of @image@---     specified in @pRanges@ at the time this command is executed on a---     'Vulkan.Core10.Handles.Device'------ -   #VUID-vkCmdClearDepthStencilImage-imageLayout-00012# @imageLayout@---     /must/ be either of---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL'---     or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL'------ -   #VUID-vkCmdClearDepthStencilImage-aspectMask-02824# The---     'Vulkan.Core10.ImageView.ImageSubresourceRange'::@aspectMask@ member---     of each element of the @pRanges@ array /must/ not include bits other---     than---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' or---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'------ -   #VUID-vkCmdClearDepthStencilImage-image-02825# If the @image@’s---     format does not have a stencil component, then the---     'Vulkan.Core10.ImageView.ImageSubresourceRange'::@aspectMask@ member---     of each element of the @pRanges@ array /must/ not include the---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'---     bit------ -   #VUID-vkCmdClearDepthStencilImage-image-02826# If the @image@’s---     format does not have a depth component, then the---     'Vulkan.Core10.ImageView.ImageSubresourceRange'::@aspectMask@ member---     of each element of the @pRanges@ array /must/ not include the---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' bit------ -   #VUID-vkCmdClearDepthStencilImage-baseMipLevel-01474# The---     'Vulkan.Core10.ImageView.ImageSubresourceRange'::@baseMipLevel@---     members of the elements of the @pRanges@ array /must/ each be less---     than the @mipLevels@ specified in---     'Vulkan.Core10.Image.ImageCreateInfo' when @image@ was created------ -   #VUID-vkCmdClearDepthStencilImage-pRanges-01694# For each---     'Vulkan.Core10.ImageView.ImageSubresourceRange' element of---     @pRanges@, if the @levelCount@ member is not---     'Vulkan.Core10.APIConstants.REMAINING_MIP_LEVELS', then---     @baseMipLevel@ + @levelCount@ /must/ be less than or equal to the---     @mipLevels@ specified in 'Vulkan.Core10.Image.ImageCreateInfo' when---     @image@ was created------ -   #VUID-vkCmdClearDepthStencilImage-baseArrayLayer-01476# The---     'Vulkan.Core10.ImageView.ImageSubresourceRange'::@baseArrayLayer@---     members of the elements of the @pRanges@ array /must/ each be less---     than the @arrayLayers@ specified in---     'Vulkan.Core10.Image.ImageCreateInfo' when @image@ was created------ -   #VUID-vkCmdClearDepthStencilImage-pRanges-01695# For each---     'Vulkan.Core10.ImageView.ImageSubresourceRange' element of---     @pRanges@, if the @layerCount@ member is not---     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS', then---     @baseArrayLayer@ + @layerCount@ /must/ be less than or equal to the---     @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'---     when @image@ was created------ -   #VUID-vkCmdClearDepthStencilImage-image-00014# @image@ /must/ have a---     depth\/stencil format------ -   #VUID-vkCmdClearDepthStencilImage-commandBuffer-01807# If---     @commandBuffer@ is an unprotected command buffer and---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, @image@ /must/ not be a protected image------ -   #VUID-vkCmdClearDepthStencilImage-commandBuffer-01808# If---     @commandBuffer@ is a protected command buffer and---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, @image@ /must/ not be an unprotected image------ == Valid Usage (Implicit)------ -   #VUID-vkCmdClearDepthStencilImage-commandBuffer-parameter#---     @commandBuffer@ /must/ be a valid---     'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdClearDepthStencilImage-image-parameter# @image@ /must/ be---     a valid 'Vulkan.Core10.Handles.Image' handle------ -   #VUID-vkCmdClearDepthStencilImage-imageLayout-parameter#---     @imageLayout@ /must/ be a valid---     'Vulkan.Core10.Enums.ImageLayout.ImageLayout' value------ -   #VUID-vkCmdClearDepthStencilImage-pDepthStencil-parameter#---     @pDepthStencil@ /must/ be a valid pointer to a valid---     'ClearDepthStencilValue' structure------ -   #VUID-vkCmdClearDepthStencilImage-pRanges-parameter# @pRanges@---     /must/ be a valid pointer to an array of @rangeCount@ valid---     'Vulkan.Core10.ImageView.ImageSubresourceRange' structures------ -   #VUID-vkCmdClearDepthStencilImage-commandBuffer-recording#---     @commandBuffer@ /must/ be in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>------ -   #VUID-vkCmdClearDepthStencilImage-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics operations------ -   #VUID-vkCmdClearDepthStencilImage-renderpass# This command /must/---     only be called outside of a render pass instance------ -   #VUID-vkCmdClearDepthStencilImage-videocoding# This command /must/---     only be called outside of a video coding scope------ -   #VUID-vkCmdClearDepthStencilImage-rangeCount-arraylength#---     @rangeCount@ /must/ be greater than @0@------ -   #VUID-vkCmdClearDepthStencilImage-commonparent# Both of---     @commandBuffer@, and @image@ /must/ have been created, allocated, or---     retrieved from the same 'Vulkan.Core10.Handles.Device'------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |--- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+--- | Primary                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'ClearDepthStencilValue', 'Vulkan.Core10.Handles.CommandBuffer',--- 'Vulkan.Core10.Handles.Image',--- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout',--- 'Vulkan.Core10.ImageView.ImageSubresourceRange'-cmdClearDepthStencilImage :: forall io-                           . (MonadIO io)-                          => -- | @commandBuffer@ is the command buffer into which the command will be-                             -- recorded.-                             CommandBuffer-                          -> -- | @image@ is the image to be cleared.-                             Image-                          -> -- | @imageLayout@ specifies the current layout of the image subresource-                             -- ranges to be cleared, and /must/ be-                             -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL' or-                             -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL'.-                             ImageLayout-                          -> -- | @pDepthStencil@ is a pointer to a 'ClearDepthStencilValue' structure-                             -- containing the values that the depth and stencil image subresource-                             -- ranges will be cleared to (see-                             -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#clears-values>-                             -- below).-                             ClearDepthStencilValue-                          -> -- | @pRanges@ is a pointer to an array of-                             -- 'Vulkan.Core10.ImageView.ImageSubresourceRange' structures describing a-                             -- range of mipmap levels, array layers, and aspects to be cleared, as-                             -- described in-                             -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-views Image Views>.-                             ("ranges" ::: Vector ImageSubresourceRange)-                          -> io ()-cmdClearDepthStencilImage commandBuffer-                            image-                            imageLayout-                            depthStencil-                            ranges = liftIO . evalContT $ do-  let vkCmdClearDepthStencilImagePtr = pVkCmdClearDepthStencilImage (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  lift $ unless (vkCmdClearDepthStencilImagePtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdClearDepthStencilImage is null" Nothing Nothing-  let vkCmdClearDepthStencilImage' = mkVkCmdClearDepthStencilImage vkCmdClearDepthStencilImagePtr-  pDepthStencil <- ContT $ withCStruct (depthStencil)-  pPRanges <- ContT $ allocaBytes @ImageSubresourceRange ((Data.Vector.length (ranges)) * 20)-  lift $ Data.Vector.imapM_ (\i e -> poke (pPRanges `plusPtr` (20 * (i)) :: Ptr ImageSubresourceRange) (e)) (ranges)-  lift $ traceAroundEvent "vkCmdClearDepthStencilImage" (vkCmdClearDepthStencilImage'-                                                           (commandBufferHandle (commandBuffer))-                                                           (image)-                                                           (imageLayout)-                                                           pDepthStencil-                                                           ((fromIntegral (Data.Vector.length $ (ranges)) :: Word32))-                                                           (pPRanges))-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdClearAttachments-  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Ptr ClearAttachment -> Word32 -> Ptr ClearRect -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Ptr ClearAttachment -> Word32 -> Ptr ClearRect -> IO ()---- | vkCmdClearAttachments - Clear regions within bound framebuffer--- attachments------ = Description------ If the render pass has a--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-fragmentdensitymapattachment fragment density map attachment>,--- clears follow the--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragmentdensitymapops operations of fragment density maps>--- as if each clear region was a primitive which generates fragments. The--- clear color is applied to all pixels inside each fragment’s area--- regardless if the pixels lie outside of the clear region. Clears /may/--- have a different set of supported fragment areas than draws.------ Unlike other--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#clears clear commands>,--- 'cmdClearAttachments' is not a transfer command. It performs its--- operations in--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-order rasterization order>.--- For color attachments, the operations are executed as color attachment--- writes, by the--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT'--- stage. For depth\/stencil attachments, the operations are executed as--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-depth depth writes>--- and--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-stencil stencil writes>--- by the--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT'--- and--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT'--- stages.------ 'cmdClearAttachments' is not affected by the bound pipeline state.------ Note------ It is generally preferable to clear attachments by using the--- 'Vulkan.Core10.Enums.AttachmentLoadOp.ATTACHMENT_LOAD_OP_CLEAR' load--- operation at the start of rendering, as it is more efficient on some--- implementations.------ If any attachment’s @aspectMask@ to be cleared is not backed by an image--- view, the clear has no effect on that aspect.------ If an attachment being cleared refers to an image view created with an--- @aspectMask@ equal to one of--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT',--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT' or--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT', it--- is considered to be--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT' for--- purposes of this command, and /must/ be cleared with the--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT' aspect--- as specified by--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#image-views-plane-promotion image view creation>.------ == Valid Usage------ -   #VUID-vkCmdClearAttachments-aspectMask-07884# If the current render---     pass instance does not use dynamic rendering, and the @aspectMask@---     member of any element of @pAttachments@ contains---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT',---     the current subpass instance’s depth-stencil attachment /must/ be---     either 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' or the---     attachment @format@ /must/ contain a depth component------ -   #VUID-vkCmdClearAttachments-aspectMask-07885# If the current render---     pass instance does not use dynamic rendering, and the @aspectMask@---     member of any element of @pAttachments@ contains---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT',---     the current subpass instance’s depth-stencil attachment /must/ be---     either 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' or the---     attachment @format@ /must/ contain a stencil component------ -   #VUID-vkCmdClearAttachments-aspectMask-07271# If the @aspectMask@---     member of any element of @pAttachments@ contains---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT',---     the @colorAttachment@ /must/ be a valid color attachment index in---     the current render pass instance------ -   #VUID-vkCmdClearAttachments-rect-02682# The @rect@ member of each---     element of @pRects@ /must/ have an @extent.width@ greater than @0@------ -   #VUID-vkCmdClearAttachments-rect-02683# The @rect@ member of each---     element of @pRects@ /must/ have an @extent.height@ greater than @0@------ -   #VUID-vkCmdClearAttachments-pRects-00016# The rectangular region---     specified by each element of @pRects@ /must/ be contained within the---     render area of the current render pass instance------ -   #VUID-vkCmdClearAttachments-pRects-06937# The layers specified by---     each element of @pRects@ /must/ be contained within every attachment---     that @pAttachments@ refers to, i.e. for each element of @pRects@,---     'ClearRect'::@baseArrayLayer@ + 'ClearRect'::@layerCount@ /must/ be---     less than or equal to the number of layers rendered to in the---     current render pass instance------ -   #VUID-vkCmdClearAttachments-layerCount-01934# The @layerCount@---     member of each element of @pRects@ /must/ not be @0@------ -   #VUID-vkCmdClearAttachments-commandBuffer-02504# If @commandBuffer@---     is an unprotected command buffer and---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, each attachment to be cleared /must/ not be a---     protected image------ -   #VUID-vkCmdClearAttachments-commandBuffer-02505# If @commandBuffer@---     is a protected command buffer and---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, each attachment to be cleared /must/ not be an---     unprotected image------ -   #VUID-vkCmdClearAttachments-baseArrayLayer-00018# If the render pass---     instance this is recorded in uses multiview, then @baseArrayLayer@---     /must/ be zero and @layerCount@ /must/ be one------ -   #VUID-vkCmdClearAttachments-aspectMask-09298# If the subpass this is---     recorded in performs an external format resolve, the @aspectMask@---     member of any element of @pAttachments@ /must/ not include---     @VK_IMAGE_ASPECT_PLANE_i_BIT@ for any index /i/------ == Valid Usage (Implicit)------ -   #VUID-vkCmdClearAttachments-commandBuffer-parameter# @commandBuffer@---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdClearAttachments-pAttachments-parameter# @pAttachments@---     /must/ be a valid pointer to an array of @attachmentCount@ valid---     'ClearAttachment' structures------ -   #VUID-vkCmdClearAttachments-pRects-parameter# @pRects@ /must/ be a---     valid pointer to an array of @rectCount@ 'ClearRect' structures------ -   #VUID-vkCmdClearAttachments-commandBuffer-recording# @commandBuffer@---     /must/ be in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>------ -   #VUID-vkCmdClearAttachments-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics operations------ -   #VUID-vkCmdClearAttachments-renderpass# This command /must/ only be---     called inside of a render pass instance------ -   #VUID-vkCmdClearAttachments-videocoding# This command /must/ only be---     called outside of a video coding scope------ -   #VUID-vkCmdClearAttachments-attachmentCount-arraylength#---     @attachmentCount@ /must/ be greater than @0@------ -   #VUID-vkCmdClearAttachments-rectCount-arraylength# @rectCount@---     /must/ be greater than @0@------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |--- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+--- | Primary                                                                                                                    | Inside                                                                                                                 | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'ClearAttachment', 'ClearRect', 'Vulkan.Core10.Handles.CommandBuffer'-cmdClearAttachments :: forall io-                     . (MonadIO io)-                    => -- | @commandBuffer@ is the command buffer into which the command will be-                       -- recorded.-                       CommandBuffer-                    -> -- | @pAttachments@ is a pointer to an array of 'ClearAttachment' structures-                       -- defining the attachments to clear and the clear values to use.-                       ("attachments" ::: Vector ClearAttachment)-                    -> -- | @pRects@ is a pointer to an array of 'ClearRect' structures defining-                       -- regions within each selected attachment to clear.-                       ("rects" ::: Vector ClearRect)-                    -> io ()-cmdClearAttachments commandBuffer attachments rects = liftIO . evalContT $ do-  let vkCmdClearAttachmentsPtr = pVkCmdClearAttachments (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  lift $ unless (vkCmdClearAttachmentsPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdClearAttachments is null" Nothing Nothing-  let vkCmdClearAttachments' = mkVkCmdClearAttachments vkCmdClearAttachmentsPtr-  pPAttachments <- ContT $ allocaBytes @ClearAttachment ((Data.Vector.length (attachments)) * 24)-  Data.Vector.imapM_ (\i e -> ContT $ pokeCStruct (pPAttachments `plusPtr` (24 * (i)) :: Ptr ClearAttachment) (e) . ($ ())) (attachments)-  pPRects <- ContT $ allocaBytes @ClearRect ((Data.Vector.length (rects)) * 24)-  lift $ Data.Vector.imapM_ (\i e -> poke (pPRects `plusPtr` (24 * (i)) :: Ptr ClearRect) (e)) (rects)-  lift $ traceAroundEvent "vkCmdClearAttachments" (vkCmdClearAttachments'-                                                     (commandBufferHandle (commandBuffer))-                                                     ((fromIntegral (Data.Vector.length $ (attachments)) :: Word32))-                                                     (pPAttachments)-                                                     ((fromIntegral (Data.Vector.length $ (rects)) :: Word32))-                                                     (pPRects))-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdResolveImage-  :: FunPtr (Ptr CommandBuffer_T -> Image -> ImageLayout -> Image -> ImageLayout -> Word32 -> Ptr ImageResolve -> IO ()) -> Ptr CommandBuffer_T -> Image -> ImageLayout -> Image -> ImageLayout -> Word32 -> Ptr ImageResolve -> IO ()---- | vkCmdResolveImage - Resolve regions of an image------ = Description------ During the resolve the samples corresponding to each pixel location in--- the source are converted to a single sample before being written to the--- destination. If the source formats are floating-point or normalized--- types, the sample values for each pixel are resolved in an--- implementation-dependent manner. If the source formats are integer--- types, a single sample’s value is selected for each pixel.------ @srcOffset@ and @dstOffset@ select the initial @x@, @y@, and @z@ offsets--- in texels of the sub-regions of the source and destination image data.--- @extent@ is the size in texels of the source image to resolve in--- @width@, @height@ and @depth@. Each element of @pRegions@ /must/ be a--- region that is contained within its corresponding image.------ Resolves are done layer by layer starting with @baseArrayLayer@ member--- of @srcSubresource@ for the source and @dstSubresource@ for the--- destination. @layerCount@ layers are resolved to the destination image.------ == Valid Usage------ -   #VUID-vkCmdResolveImage-commandBuffer-01837# If @commandBuffer@ is---     an unprotected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, @srcImage@ /must/ not be a protected image------ -   #VUID-vkCmdResolveImage-commandBuffer-01838# If @commandBuffer@ is---     an unprotected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, @dstImage@ /must/ not be a protected image------ -   #VUID-vkCmdResolveImage-commandBuffer-01839# If @commandBuffer@ is a---     protected command buffer and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, @dstImage@ /must/ not be an unprotected image------ -   #VUID-vkCmdResolveImage-pRegions-00255# The union of all source---     regions, and the union of all destination regions, specified by the---     elements of @pRegions@, /must/ not overlap in memory------ -   #VUID-vkCmdResolveImage-srcImage-00256# If @srcImage@ is non-sparse---     then it /must/ be bound completely and contiguously to a single---     'Vulkan.Core10.Handles.DeviceMemory' object------ -   #VUID-vkCmdResolveImage-srcImage-00257# @srcImage@ /must/ have a---     sample count equal to any valid sample count value other than---     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'------ -   #VUID-vkCmdResolveImage-dstImage-00258# If @dstImage@ is non-sparse---     then it /must/ be bound completely and contiguously to a single---     'Vulkan.Core10.Handles.DeviceMemory' object------ -   #VUID-vkCmdResolveImage-dstImage-00259# @dstImage@ /must/ have a---     sample count equal to---     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'------ -   #VUID-vkCmdResolveImage-srcImageLayout-00260# @srcImageLayout@---     /must/ specify the layout of the image subresources of @srcImage@---     specified in @pRegions@ at the time this command is executed on a---     'Vulkan.Core10.Handles.Device'------ -   #VUID-vkCmdResolveImage-srcImageLayout-01400# @srcImageLayout@---     /must/ be---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR',---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL'---     or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL'------ -   #VUID-vkCmdResolveImage-dstImageLayout-00262# @dstImageLayout@---     /must/ specify the layout of the image subresources of @dstImage@---     specified in @pRegions@ at the time this command is executed on a---     'Vulkan.Core10.Handles.Device'------ -   #VUID-vkCmdResolveImage-dstImageLayout-01401# @dstImageLayout@---     /must/ be---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR',---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL'---     or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL'------ -   #VUID-vkCmdResolveImage-dstImage-02003# The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>---     of @dstImage@ /must/ contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BIT'------ -   #VUID-vkCmdResolveImage-linearColorAttachment-06519# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-linearColorAttachment linearColorAttachment>---     feature is enabled and the image is created with---     'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR', the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>---     of @dstImage@ /must/ contain---     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV'------ -   #VUID-vkCmdResolveImage-srcImage-01386# @srcImage@ and @dstImage@---     /must/ have been created with the same image format------ -   #VUID-vkCmdResolveImage-srcSubresource-01709# The---     @srcSubresource.mipLevel@ member of each element of @pRegions@---     /must/ be less than the @mipLevels@ specified in---     'Vulkan.Core10.Image.ImageCreateInfo' when @srcImage@ was created------ -   #VUID-vkCmdResolveImage-dstSubresource-01710# The---     @dstSubresource.mipLevel@ member of each element of @pRegions@---     /must/ be less than the @mipLevels@ specified in---     'Vulkan.Core10.Image.ImageCreateInfo' when @dstImage@ was created------ -   #VUID-vkCmdResolveImage-srcSubresource-01711# The---     @srcSubresource.baseArrayLayer@ + @srcSubresource.layerCount@ of---     each element of @pRegions@ , if @srcSubresource.layerCount@ is not---     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance5 maintenance5>---     is not enabled, /must/ be less than or equal to the @arrayLayers@---     specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @srcImage@---     was created------ -   #VUID-vkCmdResolveImage-dstSubresource-01712# The---     @dstSubresource.baseArrayLayer@ + @dstSubresource.layerCount@ of---     each element of @pRegions@ , if @dstSubresource.layerCount@ is not---     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance5 maintenance5>---     is not enabled, /must/ be less than or equal to the @arrayLayers@---     specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @dstImage@---     was created------ -   #VUID-vkCmdResolveImage-dstImage-02546# @dstImage@ and @srcImage@---     /must/ not have been created with @flags@ containing---     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'------ -   #VUID-vkCmdResolveImage-srcImage-04446# If @dstImage@ is of type---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each element---     of @pRegions@, @srcSubresource.layerCount@ /must/ be @1@------ -   #VUID-vkCmdResolveImage-srcImage-04447# If @dstImage@ is of type---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each element---     of @pRegions@, @dstSubresource.baseArrayLayer@ /must/ be @0@ and---     @dstSubresource.layerCount@ /must/ be @1@------ -   #VUID-vkCmdResolveImage-srcOffset-00269# For each element of---     @pRegions@, @srcOffset.x@ and (@extent.width@ + @srcOffset.x@)---     /must/ both be greater than or equal to @0@ and less than or equal---     to the width of the specified @srcSubresource@ of @srcImage@------ -   #VUID-vkCmdResolveImage-srcOffset-00270# For each element of---     @pRegions@, @srcOffset.y@ and (@extent.height@ + @srcOffset.y@)---     /must/ both be greater than or equal to @0@ and less than or equal---     to the height of the specified @srcSubresource@ of @srcImage@------ -   #VUID-vkCmdResolveImage-srcImage-00271# If @srcImage@ is of type---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element---     of @pRegions@, @srcOffset.y@ /must/ be @0@ and @extent.height@---     /must/ be @1@------ -   #VUID-vkCmdResolveImage-srcOffset-00272# For each element of---     @pRegions@, @srcOffset.z@ and (@extent.depth@ + @srcOffset.z@)---     /must/ both be greater than or equal to @0@ and less than or equal---     to the depth of the specified @srcSubresource@ of @srcImage@------ -   #VUID-vkCmdResolveImage-srcImage-00273# If @srcImage@ is of type---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D' or---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element---     of @pRegions@, @srcOffset.z@ /must/ be @0@ and @extent.depth@ /must/---     be @1@------ -   #VUID-vkCmdResolveImage-dstOffset-00274# For each element of---     @pRegions@, @dstOffset.x@ and (@extent.width@ + @dstOffset.x@)---     /must/ both be greater than or equal to @0@ and less than or equal---     to the width of the specified @dstSubresource@ of @dstImage@------ -   #VUID-vkCmdResolveImage-dstOffset-00275# For each element of---     @pRegions@, @dstOffset.y@ and (@extent.height@ + @dstOffset.y@)---     /must/ both be greater than or equal to @0@ and less than or equal---     to the height of the specified @dstSubresource@ of @dstImage@------ -   #VUID-vkCmdResolveImage-dstImage-00276# If @dstImage@ is of type---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element---     of @pRegions@, @dstOffset.y@ /must/ be @0@ and @extent.height@---     /must/ be @1@------ -   #VUID-vkCmdResolveImage-dstOffset-00277# For each element of---     @pRegions@, @dstOffset.z@ and (@extent.depth@ + @dstOffset.z@)---     /must/ both be greater than or equal to @0@ and less than or equal---     to the depth of the specified @dstSubresource@ of @dstImage@------ -   #VUID-vkCmdResolveImage-dstImage-00278# If @dstImage@ is of type---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D' or---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element---     of @pRegions@, @dstOffset.z@ /must/ be @0@ and @extent.depth@ /must/---     be @1@------ -   #VUID-vkCmdResolveImage-srcImage-06762# @srcImage@ /must/ have been---     created with---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_SRC_BIT'---     usage flag------ -   #VUID-vkCmdResolveImage-srcImage-06763# The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>---     of @srcImage@ /must/ contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_TRANSFER_SRC_BIT'------ -   #VUID-vkCmdResolveImage-dstImage-06764# @dstImage@ /must/ have been---     created with---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'---     usage flag------ -   #VUID-vkCmdResolveImage-dstImage-06765# The---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>---     of @dstImage@ /must/ contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_TRANSFER_DST_BIT'------ == Valid Usage (Implicit)------ -   #VUID-vkCmdResolveImage-commandBuffer-parameter# @commandBuffer@---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdResolveImage-srcImage-parameter# @srcImage@ /must/ be a---     valid 'Vulkan.Core10.Handles.Image' handle------ -   #VUID-vkCmdResolveImage-srcImageLayout-parameter# @srcImageLayout@---     /must/ be a valid 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'---     value------ -   #VUID-vkCmdResolveImage-dstImage-parameter# @dstImage@ /must/ be a---     valid 'Vulkan.Core10.Handles.Image' handle------ -   #VUID-vkCmdResolveImage-dstImageLayout-parameter# @dstImageLayout@---     /must/ be a valid 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'---     value------ -   #VUID-vkCmdResolveImage-pRegions-parameter# @pRegions@ /must/ be a---     valid pointer to an array of @regionCount@ valid 'ImageResolve'---     structures------ -   #VUID-vkCmdResolveImage-commandBuffer-recording# @commandBuffer@---     /must/ be in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>------ -   #VUID-vkCmdResolveImage-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics operations------ -   #VUID-vkCmdResolveImage-renderpass# This command /must/ only be---     called outside of a render pass instance------ -   #VUID-vkCmdResolveImage-videocoding# This command /must/ only be---     called outside of a video coding scope------ -   #VUID-vkCmdResolveImage-regionCount-arraylength# @regionCount@---     /must/ be greater than @0@------ -   #VUID-vkCmdResolveImage-commonparent# Each of @commandBuffer@,---     @dstImage@, and @srcImage@ /must/ have been created, allocated, or---     retrieved from the same 'Vulkan.Core10.Handles.Device'------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |--- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+--- | Primary                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.CommandBuffer', 'Vulkan.Core10.Handles.Image',--- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout', 'ImageResolve'-cmdResolveImage :: forall io-                 . (MonadIO io)-                => -- | @commandBuffer@ is the command buffer into which the command will be-                   -- recorded.-                   CommandBuffer-                -> -- | @srcImage@ is the source image.-                   ("srcImage" ::: Image)-                -> -- | @srcImageLayout@ is the layout of the source image subresources for the-                   -- resolve.-                   ("srcImageLayout" ::: ImageLayout)-                -> -- | @dstImage@ is the destination image.-                   ("dstImage" ::: Image)-                -> -- | @dstImageLayout@ is the layout of the destination image subresources for-                   -- the resolve.-                   ("dstImageLayout" ::: ImageLayout)-                -> -- | @pRegions@ is a pointer to an array of 'ImageResolve' structures-                   -- specifying the regions to resolve.-                   ("regions" ::: Vector ImageResolve)-                -> io ()-cmdResolveImage commandBuffer-                  srcImage-                  srcImageLayout-                  dstImage-                  dstImageLayout-                  regions = liftIO . evalContT $ do-  let vkCmdResolveImagePtr = pVkCmdResolveImage (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  lift $ unless (vkCmdResolveImagePtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdResolveImage is null" Nothing Nothing-  let vkCmdResolveImage' = mkVkCmdResolveImage vkCmdResolveImagePtr-  pPRegions <- ContT $ allocaBytes @ImageResolve ((Data.Vector.length (regions)) * 68)-  lift $ Data.Vector.imapM_ (\i e -> poke (pPRegions `plusPtr` (68 * (i)) :: Ptr ImageResolve) (e)) (regions)-  lift $ traceAroundEvent "vkCmdResolveImage" (vkCmdResolveImage'-                                                 (commandBufferHandle (commandBuffer))-                                                 (srcImage)-                                                 (srcImageLayout)-                                                 (dstImage)-                                                 (dstImageLayout)-                                                 ((fromIntegral (Data.Vector.length $ (regions)) :: Word32))-                                                 (pPRegions))-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdSetEvent-  :: FunPtr (Ptr CommandBuffer_T -> Event -> PipelineStageFlags -> IO ()) -> Ptr CommandBuffer_T -> Event -> PipelineStageFlags -> IO ()---- | vkCmdSetEvent - Set an event object to signaled state------ = Description------ 'cmdSetEvent' behaves identically to--- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdSetEvent2',--- except that it does not define an access scope, and /must/ only be used--- with 'cmdWaitEvents', not--- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdWaitEvents2'.------ == Valid Usage------ -   #VUID-vkCmdSetEvent-stageMask-04090# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader>---     feature is not enabled, @stageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT'------ -   #VUID-vkCmdSetEvent-stageMask-04091# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>---     feature is not enabled, @stageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT'---     or---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT'------ -   #VUID-vkCmdSetEvent-stageMask-04092# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditionalRendering>---     feature is not enabled, @stageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT'------ -   #VUID-vkCmdSetEvent-stageMask-04093# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragmentDensityMap>---     feature is not enabled, @stageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT'------ -   #VUID-vkCmdSetEvent-stageMask-04094# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transformFeedback>---     feature is not enabled, @stageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'------ -   #VUID-vkCmdSetEvent-stageMask-04095# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>---     feature is not enabled, @stageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_EXT'------ -   #VUID-vkCmdSetEvent-stageMask-04096# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>---     feature is not enabled, @stageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_EXT'------ -   #VUID-vkCmdSetEvent-stageMask-07318# If neither the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>---     or---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>---     are enabled, @stageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'------ -   #VUID-vkCmdSetEvent-stageMask-03937# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2>---     feature is not enabled, @stageMask@ /must/ not be @0@------ -   #VUID-vkCmdSetEvent-stageMask-07949# If neither the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracing VK_NV_ray_tracing>---     extension or---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayTracingPipeline rayTracingPipeline feature>---     are enabled, @stageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR'------ -   #VUID-vkCmdSetEvent-stageMask-06457# Any pipeline stage included in---     @stageMask@ /must/ be supported by the capabilities of the queue---     family specified by the @queueFamilyIndex@ member of the---     'Vulkan.Core10.CommandPool.CommandPoolCreateInfo' structure that was---     used to create the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from, as specified in the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-supported table of supported pipeline stages>------ -   #VUID-vkCmdSetEvent-stageMask-01149# @stageMask@ /must/ not include---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_HOST_BIT'------ -   #VUID-vkCmdSetEvent-commandBuffer-01152# The current device mask of---     @commandBuffer@ /must/ include exactly one physical device------ == Valid Usage (Implicit)------ -   #VUID-vkCmdSetEvent-commandBuffer-parameter# @commandBuffer@ /must/---     be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdSetEvent-event-parameter# @event@ /must/ be a valid---     'Vulkan.Core10.Handles.Event' handle------ -   #VUID-vkCmdSetEvent-stageMask-parameter# @stageMask@ /must/ be a---     valid combination of---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'---     values------ -   #VUID-vkCmdSetEvent-commandBuffer-recording# @commandBuffer@ /must/---     be in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>------ -   #VUID-vkCmdSetEvent-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics, compute, decode, or encode---     operations------ -   #VUID-vkCmdSetEvent-renderpass# This command /must/ only be called---     outside of a render pass instance------ -   #VUID-vkCmdSetEvent-commonparent# Both of @commandBuffer@, and---     @event@ /must/ have been created, allocated, or retrieved from the---     same 'Vulkan.Core10.Handles.Device'------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |--- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+--- | Primary                                                                                                                    | Outside                                                                                                                | Both                                                                                                                        | Graphics                                                                                                              | Synchronization                                                                                                                        |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Compute                                                                                                               |                                                                                                                                        |--- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Decode                                                                                                                |                                                                                                                                        |--- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Encode                                                                                                                |                                                                                                                                        |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.CommandBuffer', 'Vulkan.Core10.Handles.Event',--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlags'-cmdSetEvent :: forall io-             . (MonadIO io)-            => -- | @commandBuffer@ is the command buffer into which the command is-               -- recorded.-               CommandBuffer-            -> -- | @event@ is the event that will be signaled.-               Event-            -> -- | @stageMask@ specifies the-               -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages source stage mask>-               -- used to determine the first-               -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>.-               ("stageMask" ::: PipelineStageFlags)-            -> io ()-cmdSetEvent commandBuffer event stageMask = liftIO $ do-  let vkCmdSetEventPtr = pVkCmdSetEvent (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  unless (vkCmdSetEventPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetEvent is null" Nothing Nothing-  let vkCmdSetEvent' = mkVkCmdSetEvent vkCmdSetEventPtr-  traceAroundEvent "vkCmdSetEvent" (vkCmdSetEvent'-                                      (commandBufferHandle (commandBuffer))-                                      (event)-                                      (stageMask))-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdResetEvent-  :: FunPtr (Ptr CommandBuffer_T -> Event -> PipelineStageFlags -> IO ()) -> Ptr CommandBuffer_T -> Event -> PipelineStageFlags -> IO ()---- | vkCmdResetEvent - Reset an event object to non-signaled state------ = Description------ 'cmdResetEvent' behaves identically to--- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdResetEvent2'.------ == Valid Usage------ -   #VUID-vkCmdResetEvent-stageMask-04090# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader>---     feature is not enabled, @stageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT'------ -   #VUID-vkCmdResetEvent-stageMask-04091# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>---     feature is not enabled, @stageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT'---     or---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT'------ -   #VUID-vkCmdResetEvent-stageMask-04092# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditionalRendering>---     feature is not enabled, @stageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT'------ -   #VUID-vkCmdResetEvent-stageMask-04093# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragmentDensityMap>---     feature is not enabled, @stageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT'------ -   #VUID-vkCmdResetEvent-stageMask-04094# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transformFeedback>---     feature is not enabled, @stageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'------ -   #VUID-vkCmdResetEvent-stageMask-04095# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>---     feature is not enabled, @stageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_EXT'------ -   #VUID-vkCmdResetEvent-stageMask-04096# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>---     feature is not enabled, @stageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_EXT'------ -   #VUID-vkCmdResetEvent-stageMask-07318# If neither the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>---     or---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>---     are enabled, @stageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'------ -   #VUID-vkCmdResetEvent-stageMask-03937# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2>---     feature is not enabled, @stageMask@ /must/ not be @0@------ -   #VUID-vkCmdResetEvent-stageMask-07949# If neither the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracing VK_NV_ray_tracing>---     extension or---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayTracingPipeline rayTracingPipeline feature>---     are enabled, @stageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR'------ -   #VUID-vkCmdResetEvent-stageMask-06458# Any pipeline stage included---     in @stageMask@ /must/ be supported by the capabilities of the queue---     family specified by the @queueFamilyIndex@ member of the---     'Vulkan.Core10.CommandPool.CommandPoolCreateInfo' structure that was---     used to create the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from, as specified in the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-supported table of supported pipeline stages>------ -   #VUID-vkCmdResetEvent-stageMask-01153# @stageMask@ /must/ not---     include---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_HOST_BIT'------ -   #VUID-vkCmdResetEvent-event-03834# There /must/ be an execution---     dependency between 'cmdResetEvent' and the execution of any---     'cmdWaitEvents' that includes @event@ in its @pEvents@ parameter------ -   #VUID-vkCmdResetEvent-event-03835# There /must/ be an execution---     dependency between 'cmdResetEvent' and the execution of any---     'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdWaitEvents2'---     that includes @event@ in its @pEvents@ parameter------ -   #VUID-vkCmdResetEvent-commandBuffer-01157# @commandBuffer@’s current---     device mask /must/ include exactly one physical device------ == Valid Usage (Implicit)------ -   #VUID-vkCmdResetEvent-commandBuffer-parameter# @commandBuffer@---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdResetEvent-event-parameter# @event@ /must/ be a valid---     'Vulkan.Core10.Handles.Event' handle------ -   #VUID-vkCmdResetEvent-stageMask-parameter# @stageMask@ /must/ be a---     valid combination of---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'---     values------ -   #VUID-vkCmdResetEvent-commandBuffer-recording# @commandBuffer@---     /must/ be in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>------ -   #VUID-vkCmdResetEvent-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics, compute, decode, or encode---     operations------ -   #VUID-vkCmdResetEvent-renderpass# This command /must/ only be called---     outside of a render pass instance------ -   #VUID-vkCmdResetEvent-commonparent# Both of @commandBuffer@, and---     @event@ /must/ have been created, allocated, or retrieved from the---     same 'Vulkan.Core10.Handles.Device'------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |--- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+--- | Primary                                                                                                                    | Outside                                                                                                                | Both                                                                                                                        | Graphics                                                                                                              | Synchronization                                                                                                                        |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Compute                                                                                                               |                                                                                                                                        |--- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Decode                                                                                                                |                                                                                                                                        |--- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Encode                                                                                                                |                                                                                                                                        |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.CommandBuffer', 'Vulkan.Core10.Handles.Event',--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlags'-cmdResetEvent :: forall io-               . (MonadIO io)-              => -- | @commandBuffer@ is the command buffer into which the command is-                 -- recorded.-                 CommandBuffer-              -> -- | @event@ is the event that will be unsignaled.-                 Event-              -> -- | @stageMask@ is a bitmask of-                 -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'-                 -- specifying the-                 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages source stage mask>-                 -- used to determine when the @event@ is unsignaled.-                 ("stageMask" ::: PipelineStageFlags)-              -> io ()-cmdResetEvent commandBuffer event stageMask = liftIO $ do-  let vkCmdResetEventPtr = pVkCmdResetEvent (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  unless (vkCmdResetEventPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdResetEvent is null" Nothing Nothing-  let vkCmdResetEvent' = mkVkCmdResetEvent vkCmdResetEventPtr-  traceAroundEvent "vkCmdResetEvent" (vkCmdResetEvent'-                                        (commandBufferHandle (commandBuffer))-                                        (event)-                                        (stageMask))-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdWaitEventsUnsafe-  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Ptr Event -> PipelineStageFlags -> PipelineStageFlags -> Word32 -> Ptr MemoryBarrier -> Word32 -> Ptr (SomeStruct BufferMemoryBarrier) -> Word32 -> Ptr (SomeStruct ImageMemoryBarrier) -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Ptr Event -> PipelineStageFlags -> PipelineStageFlags -> Word32 -> Ptr MemoryBarrier -> Word32 -> Ptr (SomeStruct BufferMemoryBarrier) -> Word32 -> Ptr (SomeStruct ImageMemoryBarrier) -> IO ()--foreign import ccall-  "dynamic" mkVkCmdWaitEventsSafe-  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Ptr Event -> PipelineStageFlags -> PipelineStageFlags -> Word32 -> Ptr MemoryBarrier -> Word32 -> Ptr (SomeStruct BufferMemoryBarrier) -> Word32 -> Ptr (SomeStruct ImageMemoryBarrier) -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Ptr Event -> PipelineStageFlags -> PipelineStageFlags -> Word32 -> Ptr MemoryBarrier -> Word32 -> Ptr (SomeStruct BufferMemoryBarrier) -> Word32 -> Ptr (SomeStruct ImageMemoryBarrier) -> IO ()---- | cmdWaitEvents with selectable safeness-cmdWaitEventsSafeOrUnsafe :: forall io-                           . (MonadIO io)-                          => (FunPtr (Ptr CommandBuffer_T -> Word32 -> Ptr Event -> PipelineStageFlags -> PipelineStageFlags -> Word32 -> Ptr MemoryBarrier -> Word32 -> Ptr (SomeStruct BufferMemoryBarrier) -> Word32 -> Ptr (SomeStruct ImageMemoryBarrier) -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Ptr Event -> PipelineStageFlags -> PipelineStageFlags -> Word32 -> Ptr MemoryBarrier -> Word32 -> Ptr (SomeStruct BufferMemoryBarrier) -> Word32 -> Ptr (SomeStruct ImageMemoryBarrier) -> IO ())-                          -> -- | @commandBuffer@ is the command buffer into which the command is-                             -- recorded.-                             CommandBuffer-                          -> -- | @pEvents@ is a pointer to an array of event object handles to wait on.-                             ("events" ::: Vector Event)-                          -> -- | @srcStageMask@ is a bitmask of-                             -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'-                             -- specifying the-                             -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages source stage mask>.-                             ("srcStageMask" ::: PipelineStageFlags)-                          -> -- | @dstStageMask@ is a bitmask of-                             -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'-                             -- specifying the-                             -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages destination stage mask>.-                             ("dstStageMask" ::: PipelineStageFlags)-                          -> -- | @pMemoryBarriers@ is a pointer to an array of-                             -- 'Vulkan.Core10.OtherTypes.MemoryBarrier' structures.-                             ("memoryBarriers" ::: Vector MemoryBarrier)-                          -> -- | @pBufferMemoryBarriers@ is a pointer to an array of-                             -- 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier' structures.-                             ("bufferMemoryBarriers" ::: Vector (SomeStruct BufferMemoryBarrier))-                          -> -- | @pImageMemoryBarriers@ is a pointer to an array of-                             -- 'Vulkan.Core10.OtherTypes.ImageMemoryBarrier' structures.-                             ("imageMemoryBarriers" ::: Vector (SomeStruct ImageMemoryBarrier))-                          -> io ()-cmdWaitEventsSafeOrUnsafe mkVkCmdWaitEvents commandBuffer-                                              events-                                              srcStageMask-                                              dstStageMask-                                              memoryBarriers-                                              bufferMemoryBarriers-                                              imageMemoryBarriers = liftIO . evalContT $ do-  let vkCmdWaitEventsPtr = pVkCmdWaitEvents (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  lift $ unless (vkCmdWaitEventsPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdWaitEvents is null" Nothing Nothing-  let vkCmdWaitEvents' = mkVkCmdWaitEvents vkCmdWaitEventsPtr-  pPEvents <- ContT $ allocaBytes @Event ((Data.Vector.length (events)) * 8)-  lift $ Data.Vector.imapM_ (\i e -> poke (pPEvents `plusPtr` (8 * (i)) :: Ptr Event) (e)) (events)-  pPMemoryBarriers <- ContT $ allocaBytes @MemoryBarrier ((Data.Vector.length (memoryBarriers)) * 24)-  lift $ Data.Vector.imapM_ (\i e -> poke (pPMemoryBarriers `plusPtr` (24 * (i)) :: Ptr MemoryBarrier) (e)) (memoryBarriers)-  pPBufferMemoryBarriers <- ContT $ allocaBytes @(BufferMemoryBarrier _) ((Data.Vector.length (bufferMemoryBarriers)) * 56)-  Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPBufferMemoryBarriers `plusPtr` (56 * (i)) :: Ptr (BufferMemoryBarrier _))) (e) . ($ ())) (bufferMemoryBarriers)-  pPImageMemoryBarriers <- ContT $ allocaBytes @(ImageMemoryBarrier _) ((Data.Vector.length (imageMemoryBarriers)) * 72)-  Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPImageMemoryBarriers `plusPtr` (72 * (i)) :: Ptr (ImageMemoryBarrier _))) (e) . ($ ())) (imageMemoryBarriers)-  lift $ traceAroundEvent "vkCmdWaitEvents" (vkCmdWaitEvents'-                                               (commandBufferHandle (commandBuffer))-                                               ((fromIntegral (Data.Vector.length $ (events)) :: Word32))-                                               (pPEvents)-                                               (srcStageMask)-                                               (dstStageMask)-                                               ((fromIntegral (Data.Vector.length $ (memoryBarriers)) :: Word32))-                                               (pPMemoryBarriers)-                                               ((fromIntegral (Data.Vector.length $ (bufferMemoryBarriers)) :: Word32))-                                               (forgetExtensions (pPBufferMemoryBarriers))-                                               ((fromIntegral (Data.Vector.length $ (imageMemoryBarriers)) :: Word32))-                                               (forgetExtensions (pPImageMemoryBarriers)))-  pure $ ()---- | vkCmdWaitEvents - Wait for one or more events and insert a set of memory------ = Description------ 'cmdWaitEvents' is largely similar to--- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdWaitEvents2',--- but /can/ only wait on signal operations defined by 'cmdSetEvent'. As--- 'cmdSetEvent' does not define any access scopes, 'cmdWaitEvents' defines--- the first access scope for each event signal operation in addition to--- its own access scopes.------ Note------ Since 'cmdSetEvent' does not have any dependency information beyond a--- stage mask, implementations do not have the same opportunity to perform--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-available-and-visible availability and visibility operations>--- or--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transitions>--- in advance as they do with--- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdSetEvent2' and--- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdWaitEvents2'.------ When 'cmdWaitEvents' is submitted to a queue, it defines a memory--- dependency between prior event signal operations on the same queue or--- the host, and subsequent commands. 'cmdWaitEvents' /must/ not be used to--- wait on event signal operations occurring on other queues.------ The first synchronization scope only includes event signal operations--- that operate on members of @pEvents@, and the operations that--- happened-before the event signal operations. Event signal operations--- performed by 'cmdSetEvent' that occur earlier in--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>--- are included in the first synchronization scope, if the--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-order logically latest>--- pipeline stage in their @stageMask@ parameter is--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-order logically earlier>--- than or equal to the--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-order logically latest>--- pipeline stage in @srcStageMask@. Event signal operations performed by--- 'Vulkan.Core10.Event.setEvent' are only included in the first--- synchronization scope if--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_HOST_BIT' is--- included in @srcStageMask@.------ The second--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>--- includes all commands that occur later in--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.--- The second synchronization scope is limited to operations on the--- pipeline stages determined by the--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masks destination stage mask>--- specified by @dstStageMask@.------ The first--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>--- is limited to accesses in the pipeline stages determined by the--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masks source stage mask>--- specified by @srcStageMask@. Within that, the first access scope only--- includes the first access scopes defined by elements of the--- @pMemoryBarriers@, @pBufferMemoryBarriers@ and @pImageMemoryBarriers@--- arrays, which each define a set of--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-memory-barriers memory barriers>.--- If no memory barriers are specified, then the first access scope--- includes no accesses.------ The second--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>--- is limited to accesses in the pipeline stages determined by the--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masks destination stage mask>--- specified by @dstStageMask@. Within that, the second access scope only--- includes the second access scopes defined by elements of the--- @pMemoryBarriers@, @pBufferMemoryBarriers@ and @pImageMemoryBarriers@--- arrays, which each define a set of--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-memory-barriers memory barriers>.--- If no memory barriers are specified, then the second access scope--- includes no accesses.------ == Valid Usage------ -   #VUID-vkCmdWaitEvents-srcStageMask-04090# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader>---     feature is not enabled, @srcStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT'------ -   #VUID-vkCmdWaitEvents-srcStageMask-04091# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>---     feature is not enabled, @srcStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT'---     or---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT'------ -   #VUID-vkCmdWaitEvents-srcStageMask-04092# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditionalRendering>---     feature is not enabled, @srcStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT'------ -   #VUID-vkCmdWaitEvents-srcStageMask-04093# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragmentDensityMap>---     feature is not enabled, @srcStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT'------ -   #VUID-vkCmdWaitEvents-srcStageMask-04094# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transformFeedback>---     feature is not enabled, @srcStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'------ -   #VUID-vkCmdWaitEvents-srcStageMask-04095# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>---     feature is not enabled, @srcStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_EXT'------ -   #VUID-vkCmdWaitEvents-srcStageMask-04096# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>---     feature is not enabled, @srcStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_EXT'------ -   #VUID-vkCmdWaitEvents-srcStageMask-07318# If neither the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>---     or---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>---     are enabled, @srcStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'------ -   #VUID-vkCmdWaitEvents-srcStageMask-03937# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2>---     feature is not enabled, @srcStageMask@ /must/ not be @0@------ -   #VUID-vkCmdWaitEvents-srcStageMask-07949# If neither the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracing VK_NV_ray_tracing>---     extension or---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayTracingPipeline rayTracingPipeline feature>---     are enabled, @srcStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR'------ -   #VUID-vkCmdWaitEvents-srcAccessMask-06257# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayQuery rayQuery>---     feature is not enabled and a memory barrier @srcAccessMask@ includes---     'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR',---     @srcStageMask@ /must/ not include any of the---     @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages except---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR'------ -   #VUID-vkCmdWaitEvents-dstStageMask-04090# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader>---     feature is not enabled, @dstStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT'------ -   #VUID-vkCmdWaitEvents-dstStageMask-04091# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>---     feature is not enabled, @dstStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT'---     or---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT'------ -   #VUID-vkCmdWaitEvents-dstStageMask-04092# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditionalRendering>---     feature is not enabled, @dstStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT'------ -   #VUID-vkCmdWaitEvents-dstStageMask-04093# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragmentDensityMap>---     feature is not enabled, @dstStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT'------ -   #VUID-vkCmdWaitEvents-dstStageMask-04094# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transformFeedback>---     feature is not enabled, @dstStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'------ -   #VUID-vkCmdWaitEvents-dstStageMask-04095# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>---     feature is not enabled, @dstStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_EXT'------ -   #VUID-vkCmdWaitEvents-dstStageMask-04096# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>---     feature is not enabled, @dstStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_EXT'------ -   #VUID-vkCmdWaitEvents-dstStageMask-07318# If neither the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>---     or---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>---     are enabled, @dstStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'------ -   #VUID-vkCmdWaitEvents-dstStageMask-03937# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2>---     feature is not enabled, @dstStageMask@ /must/ not be @0@------ -   #VUID-vkCmdWaitEvents-dstStageMask-07949# If neither the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracing VK_NV_ray_tracing>---     extension or---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayTracingPipeline rayTracingPipeline feature>---     are enabled, @dstStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR'------ -   #VUID-vkCmdWaitEvents-dstAccessMask-06257# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayQuery rayQuery>---     feature is not enabled and a memory barrier @dstAccessMask@ includes---     'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR',---     @dstStageMask@ /must/ not include any of the---     @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages except---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR'------ -   #VUID-vkCmdWaitEvents-srcAccessMask-02815# The @srcAccessMask@---     member of each element of @pMemoryBarriers@ /must/ only include---     access flags that are supported by one or more of the pipeline---     stages in @srcStageMask@, as specified in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>------ -   #VUID-vkCmdWaitEvents-dstAccessMask-02816# The @dstAccessMask@---     member of each element of @pMemoryBarriers@ /must/ only include---     access flags that are supported by one or more of the pipeline---     stages in @dstStageMask@, as specified in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>------ -   #VUID-vkCmdWaitEvents-pBufferMemoryBarriers-02817# For any element---     of @pBufferMemoryBarriers@, if its @srcQueueFamilyIndex@ and---     @dstQueueFamilyIndex@ members are equal, or if its---     @srcQueueFamilyIndex@ is the queue family index that was used to---     create the command pool that @commandBuffer@ was allocated from,---     then its @srcAccessMask@ member /must/ only contain access flags---     that are supported by one or more of the pipeline stages in---     @srcStageMask@, as specified in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>------ -   #VUID-vkCmdWaitEvents-pBufferMemoryBarriers-02818# For any element---     of @pBufferMemoryBarriers@, if its @srcQueueFamilyIndex@ and---     @dstQueueFamilyIndex@ members are equal, or if its---     @dstQueueFamilyIndex@ is the queue family index that was used to---     create the command pool that @commandBuffer@ was allocated from,---     then its @dstAccessMask@ member /must/ only contain access flags---     that are supported by one or more of the pipeline stages in---     @dstStageMask@, as specified in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>------ -   #VUID-vkCmdWaitEvents-pImageMemoryBarriers-02819# For any element of---     @pImageMemoryBarriers@, if its @srcQueueFamilyIndex@ and---     @dstQueueFamilyIndex@ members are equal, or if its---     @srcQueueFamilyIndex@ is the queue family index that was used to---     create the command pool that @commandBuffer@ was allocated from,---     then its @srcAccessMask@ member /must/ only contain access flags---     that are supported by one or more of the pipeline stages in---     @srcStageMask@, as specified in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>------ -   #VUID-vkCmdWaitEvents-pImageMemoryBarriers-02820# For any element of---     @pImageMemoryBarriers@, if its @srcQueueFamilyIndex@ and---     @dstQueueFamilyIndex@ members are equal, or if its---     @dstQueueFamilyIndex@ is the queue family index that was used to---     create the command pool that @commandBuffer@ was allocated from,---     then its @dstAccessMask@ member /must/ only contain access flags---     that are supported by one or more of the pipeline stages in---     @dstStageMask@, as specified in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>------ -   #VUID-vkCmdWaitEvents-srcStageMask-06459# Any pipeline stage---     included in @srcStageMask@ /must/ be supported by the capabilities---     of the queue family specified by the @queueFamilyIndex@ member of---     the 'Vulkan.Core10.CommandPool.CommandPoolCreateInfo' structure that---     was used to create the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from, as specified in the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-supported table of supported pipeline stages>------ -   #VUID-vkCmdWaitEvents-dstStageMask-06460# Any pipeline stage---     included in @dstStageMask@ /must/ be supported by the capabilities---     of the queue family specified by the @queueFamilyIndex@ member of---     the 'Vulkan.Core10.CommandPool.CommandPoolCreateInfo' structure that---     was used to create the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from, as specified in the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-supported table of supported pipeline stages>------ -   #VUID-vkCmdWaitEvents-srcStageMask-01158# @srcStageMask@ /must/ be---     the bitwise OR of the @stageMask@ parameter used in previous calls---     to 'cmdSetEvent' with any of the elements of @pEvents@ and---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_HOST_BIT'---     if any of the elements of @pEvents@ was set using---     'Vulkan.Core10.Event.setEvent'------ -   #VUID-vkCmdWaitEvents-srcStageMask-07308# If 'cmdWaitEvents' is---     being called inside a render pass instance, @srcStageMask@ /must/---     not include---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_HOST_BIT'------ -   #VUID-vkCmdWaitEvents-srcQueueFamilyIndex-02803# The---     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ members of any---     element of @pBufferMemoryBarriers@ or @pImageMemoryBarriers@ /must/---     be equal------ -   #VUID-vkCmdWaitEvents-commandBuffer-01167# @commandBuffer@’s current---     device mask /must/ include exactly one physical device------ -   #VUID-vkCmdWaitEvents-pEvents-03847# Elements of @pEvents@ /must/---     not have been signaled by---     'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdSetEvent2'------ == Valid Usage (Implicit)------ -   #VUID-vkCmdWaitEvents-commandBuffer-parameter# @commandBuffer@---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdWaitEvents-pEvents-parameter# @pEvents@ /must/ be a valid---     pointer to an array of @eventCount@ valid---     'Vulkan.Core10.Handles.Event' handles------ -   #VUID-vkCmdWaitEvents-srcStageMask-parameter# @srcStageMask@ /must/---     be a valid combination of---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'---     values------ -   #VUID-vkCmdWaitEvents-dstStageMask-parameter# @dstStageMask@ /must/---     be a valid combination of---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'---     values------ -   #VUID-vkCmdWaitEvents-pMemoryBarriers-parameter# If---     @memoryBarrierCount@ is not @0@, @pMemoryBarriers@ /must/ be a valid---     pointer to an array of @memoryBarrierCount@ valid---     'Vulkan.Core10.OtherTypes.MemoryBarrier' structures------ -   #VUID-vkCmdWaitEvents-pBufferMemoryBarriers-parameter# If---     @bufferMemoryBarrierCount@ is not @0@, @pBufferMemoryBarriers@---     /must/ be a valid pointer to an array of @bufferMemoryBarrierCount@---     valid 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier' structures------ -   #VUID-vkCmdWaitEvents-pImageMemoryBarriers-parameter# If---     @imageMemoryBarrierCount@ is not @0@, @pImageMemoryBarriers@ /must/---     be a valid pointer to an array of @imageMemoryBarrierCount@ valid---     'Vulkan.Core10.OtherTypes.ImageMemoryBarrier' structures------ -   #VUID-vkCmdWaitEvents-commandBuffer-recording# @commandBuffer@---     /must/ be in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>------ -   #VUID-vkCmdWaitEvents-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics, compute, decode, or encode---     operations------ -   #VUID-vkCmdWaitEvents-eventCount-arraylength# @eventCount@ /must/ be---     greater than @0@------ -   #VUID-vkCmdWaitEvents-commonparent# Both of @commandBuffer@, and the---     elements of @pEvents@ /must/ have been created, allocated, or---     retrieved from the same 'Vulkan.Core10.Handles.Device'------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |--- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+--- | Primary                                                                                                                    | Both                                                                                                                   | Both                                                                                                                        | Graphics                                                                                                              | Synchronization                                                                                                                        |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Compute                                                                                                               |                                                                                                                                        |--- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Decode                                                                                                                |                                                                                                                                        |--- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Encode                                                                                                                |                                                                                                                                        |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier',--- 'Vulkan.Core10.Handles.CommandBuffer', 'Vulkan.Core10.Handles.Event',--- 'Vulkan.Core10.OtherTypes.ImageMemoryBarrier',--- 'Vulkan.Core10.OtherTypes.MemoryBarrier',--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlags'-cmdWaitEvents :: forall io-               . (MonadIO io)-              => -- | @commandBuffer@ is the command buffer into which the command is-                 -- recorded.-                 CommandBuffer-              -> -- | @pEvents@ is a pointer to an array of event object handles to wait on.-                 ("events" ::: Vector Event)-              -> -- | @srcStageMask@ is a bitmask of-                 -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'-                 -- specifying the-                 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages source stage mask>.-                 ("srcStageMask" ::: PipelineStageFlags)-              -> -- | @dstStageMask@ is a bitmask of-                 -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'-                 -- specifying the-                 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages destination stage mask>.-                 ("dstStageMask" ::: PipelineStageFlags)-              -> -- | @pMemoryBarriers@ is a pointer to an array of-                 -- 'Vulkan.Core10.OtherTypes.MemoryBarrier' structures.-                 ("memoryBarriers" ::: Vector MemoryBarrier)-              -> -- | @pBufferMemoryBarriers@ is a pointer to an array of-                 -- 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier' structures.-                 ("bufferMemoryBarriers" ::: Vector (SomeStruct BufferMemoryBarrier))-              -> -- | @pImageMemoryBarriers@ is a pointer to an array of-                 -- 'Vulkan.Core10.OtherTypes.ImageMemoryBarrier' structures.-                 ("imageMemoryBarriers" ::: Vector (SomeStruct ImageMemoryBarrier))-              -> io ()-cmdWaitEvents = cmdWaitEventsSafeOrUnsafe mkVkCmdWaitEventsUnsafe---- | A variant of 'cmdWaitEvents' which makes a *safe* FFI call-cmdWaitEventsSafe :: forall io-                   . (MonadIO io)-                  => -- | @commandBuffer@ is the command buffer into which the command is-                     -- recorded.-                     CommandBuffer-                  -> -- | @pEvents@ is a pointer to an array of event object handles to wait on.-                     ("events" ::: Vector Event)-                  -> -- | @srcStageMask@ is a bitmask of-                     -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'-                     -- specifying the-                     -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages source stage mask>.-                     ("srcStageMask" ::: PipelineStageFlags)-                  -> -- | @dstStageMask@ is a bitmask of-                     -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'-                     -- specifying the-                     -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages destination stage mask>.-                     ("dstStageMask" ::: PipelineStageFlags)-                  -> -- | @pMemoryBarriers@ is a pointer to an array of-                     -- 'Vulkan.Core10.OtherTypes.MemoryBarrier' structures.-                     ("memoryBarriers" ::: Vector MemoryBarrier)-                  -> -- | @pBufferMemoryBarriers@ is a pointer to an array of-                     -- 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier' structures.-                     ("bufferMemoryBarriers" ::: Vector (SomeStruct BufferMemoryBarrier))-                  -> -- | @pImageMemoryBarriers@ is a pointer to an array of-                     -- 'Vulkan.Core10.OtherTypes.ImageMemoryBarrier' structures.-                     ("imageMemoryBarriers" ::: Vector (SomeStruct ImageMemoryBarrier))-                  -> io ()-cmdWaitEventsSafe = cmdWaitEventsSafeOrUnsafe mkVkCmdWaitEventsSafe---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdPipelineBarrier-  :: FunPtr (Ptr CommandBuffer_T -> PipelineStageFlags -> PipelineStageFlags -> DependencyFlags -> Word32 -> Ptr MemoryBarrier -> Word32 -> Ptr (SomeStruct BufferMemoryBarrier) -> Word32 -> Ptr (SomeStruct ImageMemoryBarrier) -> IO ()) -> Ptr CommandBuffer_T -> PipelineStageFlags -> PipelineStageFlags -> DependencyFlags -> Word32 -> Ptr MemoryBarrier -> Word32 -> Ptr (SomeStruct BufferMemoryBarrier) -> Word32 -> Ptr (SomeStruct ImageMemoryBarrier) -> IO ()---- | vkCmdPipelineBarrier - Insert a memory dependency------ = Description------ 'cmdPipelineBarrier' operates almost identically to--- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdPipelineBarrier2',--- except that the scopes and barriers are defined as direct parameters--- rather than being defined by an--- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.DependencyInfo'.------ When 'cmdPipelineBarrier' is submitted to a queue, it defines a memory--- dependency between commands that were submitted to the same queue before--- it, and those submitted to the same queue after it.------ If 'cmdPipelineBarrier' was recorded outside a render pass instance, the--- first--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>--- includes all commands that occur earlier in--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.--- If 'cmdPipelineBarrier' was recorded inside a render pass instance, the--- first synchronization scope includes only commands that occur earlier in--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>--- within the same subpass. In either case, the first synchronization scope--- is limited to operations on the pipeline stages determined by the--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masks source stage mask>--- specified by @srcStageMask@.------ If 'cmdPipelineBarrier' was recorded outside a render pass instance, the--- second--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>--- includes all commands that occur later in--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.--- If 'cmdPipelineBarrier' was recorded inside a render pass instance, the--- second synchronization scope includes only commands that occur later in--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>--- within the same subpass. In either case, the second synchronization--- scope is limited to operations on the pipeline stages determined by the--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masks destination stage mask>--- specified by @dstStageMask@.------ The first--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>--- is limited to accesses in the pipeline stages determined by the--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masks source stage mask>--- specified by @srcStageMask@. Within that, the first access scope only--- includes the first access scopes defined by elements of the--- @pMemoryBarriers@, @pBufferMemoryBarriers@ and @pImageMemoryBarriers@--- arrays, which each define a set of--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-memory-barriers memory barriers>.--- If no memory barriers are specified, then the first access scope--- includes no accesses.------ The second--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>--- is limited to accesses in the pipeline stages determined by the--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masks destination stage mask>--- specified by @dstStageMask@. Within that, the second access scope only--- includes the second access scopes defined by elements of the--- @pMemoryBarriers@, @pBufferMemoryBarriers@ and @pImageMemoryBarriers@--- arrays, which each define a set of--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-memory-barriers memory barriers>.--- If no memory barriers are specified, then the second access scope--- includes no accesses.------ If @dependencyFlags@ includes--- 'Vulkan.Core10.Enums.DependencyFlagBits.DEPENDENCY_BY_REGION_BIT', then--- any dependency between--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-framebuffer-regions framebuffer-space>--- pipeline stages is--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-framebuffer-regions framebuffer-local>--- - otherwise it is--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-framebuffer-regions framebuffer-global>.------ == Valid Usage------ -   #VUID-vkCmdPipelineBarrier-srcStageMask-04090# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader>---     feature is not enabled, @srcStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT'------ -   #VUID-vkCmdPipelineBarrier-srcStageMask-04091# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>---     feature is not enabled, @srcStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT'---     or---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT'------ -   #VUID-vkCmdPipelineBarrier-srcStageMask-04092# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditionalRendering>---     feature is not enabled, @srcStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT'------ -   #VUID-vkCmdPipelineBarrier-srcStageMask-04093# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragmentDensityMap>---     feature is not enabled, @srcStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT'------ -   #VUID-vkCmdPipelineBarrier-srcStageMask-04094# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transformFeedback>---     feature is not enabled, @srcStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'------ -   #VUID-vkCmdPipelineBarrier-srcStageMask-04095# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>---     feature is not enabled, @srcStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_EXT'------ -   #VUID-vkCmdPipelineBarrier-srcStageMask-04096# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>---     feature is not enabled, @srcStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_EXT'------ -   #VUID-vkCmdPipelineBarrier-srcStageMask-07318# If neither the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>---     or---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>---     are enabled, @srcStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'------ -   #VUID-vkCmdPipelineBarrier-srcStageMask-03937# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2>---     feature is not enabled, @srcStageMask@ /must/ not be @0@------ -   #VUID-vkCmdPipelineBarrier-srcStageMask-07949# If neither the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracing VK_NV_ray_tracing>---     extension or---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayTracingPipeline rayTracingPipeline feature>---     are enabled, @srcStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR'------ -   #VUID-vkCmdPipelineBarrier-srcAccessMask-06257# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayQuery rayQuery>---     feature is not enabled and a memory barrier @srcAccessMask@ includes---     'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR',---     @srcStageMask@ /must/ not include any of the---     @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages except---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR'------ -   #VUID-vkCmdPipelineBarrier-dstStageMask-04090# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader>---     feature is not enabled, @dstStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT'------ -   #VUID-vkCmdPipelineBarrier-dstStageMask-04091# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>---     feature is not enabled, @dstStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT'---     or---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT'------ -   #VUID-vkCmdPipelineBarrier-dstStageMask-04092# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditionalRendering>---     feature is not enabled, @dstStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT'------ -   #VUID-vkCmdPipelineBarrier-dstStageMask-04093# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragmentDensityMap>---     feature is not enabled, @dstStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT'------ -   #VUID-vkCmdPipelineBarrier-dstStageMask-04094# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transformFeedback>---     feature is not enabled, @dstStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'------ -   #VUID-vkCmdPipelineBarrier-dstStageMask-04095# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>---     feature is not enabled, @dstStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_EXT'------ -   #VUID-vkCmdPipelineBarrier-dstStageMask-04096# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>---     feature is not enabled, @dstStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_EXT'------ -   #VUID-vkCmdPipelineBarrier-dstStageMask-07318# If neither the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>---     or---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>---     are enabled, @dstStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'------ -   #VUID-vkCmdPipelineBarrier-dstStageMask-03937# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2>---     feature is not enabled, @dstStageMask@ /must/ not be @0@------ -   #VUID-vkCmdPipelineBarrier-dstStageMask-07949# If neither the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracing VK_NV_ray_tracing>---     extension or---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayTracingPipeline rayTracingPipeline feature>---     are enabled, @dstStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR'------ -   #VUID-vkCmdPipelineBarrier-dstAccessMask-06257# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayQuery rayQuery>---     feature is not enabled and a memory barrier @dstAccessMask@ includes---     'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR',---     @dstStageMask@ /must/ not include any of the---     @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages except---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR'------ -   #VUID-vkCmdPipelineBarrier-srcAccessMask-02815# The @srcAccessMask@---     member of each element of @pMemoryBarriers@ /must/ only include---     access flags that are supported by one or more of the pipeline---     stages in @srcStageMask@, as specified in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>------ -   #VUID-vkCmdPipelineBarrier-dstAccessMask-02816# The @dstAccessMask@---     member of each element of @pMemoryBarriers@ /must/ only include---     access flags that are supported by one or more of the pipeline---     stages in @dstStageMask@, as specified in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>------ -   #VUID-vkCmdPipelineBarrier-pBufferMemoryBarriers-02817# For any---     element of @pBufferMemoryBarriers@, if its @srcQueueFamilyIndex@ and---     @dstQueueFamilyIndex@ members are equal, or if its---     @srcQueueFamilyIndex@ is the queue family index that was used to---     create the command pool that @commandBuffer@ was allocated from,---     then its @srcAccessMask@ member /must/ only contain access flags---     that are supported by one or more of the pipeline stages in---     @srcStageMask@, as specified in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>------ -   #VUID-vkCmdPipelineBarrier-pBufferMemoryBarriers-02818# For any---     element of @pBufferMemoryBarriers@, if its @srcQueueFamilyIndex@ and---     @dstQueueFamilyIndex@ members are equal, or if its---     @dstQueueFamilyIndex@ is the queue family index that was used to---     create the command pool that @commandBuffer@ was allocated from,---     then its @dstAccessMask@ member /must/ only contain access flags---     that are supported by one or more of the pipeline stages in---     @dstStageMask@, as specified in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>------ -   #VUID-vkCmdPipelineBarrier-pImageMemoryBarriers-02819# For any---     element of @pImageMemoryBarriers@, if its @srcQueueFamilyIndex@ and---     @dstQueueFamilyIndex@ members are equal, or if its---     @srcQueueFamilyIndex@ is the queue family index that was used to---     create the command pool that @commandBuffer@ was allocated from,---     then its @srcAccessMask@ member /must/ only contain access flags---     that are supported by one or more of the pipeline stages in---     @srcStageMask@, as specified in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>------ -   #VUID-vkCmdPipelineBarrier-pImageMemoryBarriers-02820# For any---     element of @pImageMemoryBarriers@, if its @srcQueueFamilyIndex@ and---     @dstQueueFamilyIndex@ members are equal, or if its---     @dstQueueFamilyIndex@ is the queue family index that was used to---     create the command pool that @commandBuffer@ was allocated from,---     then its @dstAccessMask@ member /must/ only contain access flags---     that are supported by one or more of the pipeline stages in---     @dstStageMask@, as specified in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types-supported table of supported access types>------ -   #VUID-vkCmdPipelineBarrier-None-07889# If 'cmdPipelineBarrier' is---     called within a render pass instance using a---     'Vulkan.Core10.Handles.RenderPass' object, the render pass /must/---     have been created with at least one subpass dependency that---     expresses a dependency from the current subpass to itself, does not---     include---     'Vulkan.Core10.Enums.DependencyFlagBits.DEPENDENCY_BY_REGION_BIT' if---     this command does not, does not include---     'Vulkan.Core10.Enums.DependencyFlagBits.DEPENDENCY_VIEW_LOCAL_BIT'---     if this command does not, and has---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scopes>---     and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scopes>---     that are all supersets of the scopes defined in this command------ -   #VUID-vkCmdPipelineBarrier-bufferMemoryBarrierCount-01178# If---     'cmdPipelineBarrier' is called within a render pass instance using a---     'Vulkan.Core10.Handles.RenderPass' object, it /must/ not include any---     buffer memory barriers------ -   #VUID-vkCmdPipelineBarrier-image-04073# If 'cmdPipelineBarrier' is---     called within a render pass instance using a---     'Vulkan.Core10.Handles.RenderPass' object, the @image@ member of any---     image memory barrier included in this command /must/ be an---     attachment used in the current subpass both as an input attachment,---     and as either a color, color resolve, or depth\/stencil attachment------ -   #VUID-vkCmdPipelineBarrier-image-09373# If 'cmdPipelineBarrier' is---     called within a render pass instance using a---     'Vulkan.Core10.Handles.RenderPass' object, and the @image@ member of---     any image memory barrier is a color resolve attachment, the---     corresponding color attachment /must/ be---     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED'------ -   #VUID-vkCmdPipelineBarrier-image-09374# If 'cmdPipelineBarrier' is---     called within a render pass instance using a---     'Vulkan.Core10.Handles.RenderPass' object, and the @image@ member of---     any image memory barrier is a color resolve attachment, it /must/---     have been created with a non-zero---     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@---     value------ -   #VUID-vkCmdPipelineBarrier-oldLayout-01181# If 'cmdPipelineBarrier'---     is called within a render pass instance, the @oldLayout@ and---     @newLayout@ members of any image memory barrier included in this---     command /must/ be equal------ -   #VUID-vkCmdPipelineBarrier-srcQueueFamilyIndex-01182# If---     'cmdPipelineBarrier' is called within a render pass instance, the---     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ members of any---     memory barrier included in this command /must/ be equal------ -   #VUID-vkCmdPipelineBarrier-None-07890# If 'cmdPipelineBarrier' is---     called within a render pass instance, and the source stage masks of---     any memory barriers include---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-framebuffer-regions framebuffer-space stages>,---     destination stage masks of all memory barriers /must/ only include---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-framebuffer-regions framebuffer-space stages>------ -   #VUID-vkCmdPipelineBarrier-dependencyFlags-07891# If---     'cmdPipelineBarrier' is called within a render pass instance, and---     and the source stage masks of any memory barriers include---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-framebuffer-regions framebuffer-space stages>,---     then @dependencyFlags@ /must/ include---     'Vulkan.Core10.Enums.DependencyFlagBits.DEPENDENCY_BY_REGION_BIT'------ -   #VUID-vkCmdPipelineBarrier-None-07892# If 'cmdPipelineBarrier' is---     called within a render pass instance, the source and destination---     stage masks of any memory barriers /must/ only include graphics---     pipeline stages------ -   #VUID-vkCmdPipelineBarrier-dependencyFlags-01186# If---     'cmdPipelineBarrier' is called outside of a render pass instance,---     the dependency flags /must/ not include---     'Vulkan.Core10.Enums.DependencyFlagBits.DEPENDENCY_VIEW_LOCAL_BIT'------ -   #VUID-vkCmdPipelineBarrier-None-07893# If 'cmdPipelineBarrier' is---     called inside a render pass instance, and there is more than one---     view in the current subpass, dependency flags /must/ include---     'Vulkan.Core10.Enums.DependencyFlagBits.DEPENDENCY_VIEW_LOCAL_BIT'------ -   #VUID-vkCmdPipelineBarrier-shaderTileImageColorReadAccess-08718# If---     'cmdPipelineBarrier' is called within a render pass instance and---     none of the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderTileImageColorReadAccess shaderTileImageColorReadAccess>,---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderTileImageDepthReadAccess shaderTileImageDepthReadAccess>,---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderTileImageStencilReadAccess shaderTileImageStencilReadAccess>---     features are enabled, the render pass /must/ not have been started---     with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'------ -   #VUID-vkCmdPipelineBarrier-None-08719# If 'cmdPipelineBarrier' is---     called within a render pass instance started with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     it /must/ adhere to the restrictions in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-barriers-explicit-renderpass-tileimage Explicit Render Pass Tile Image Access Synchronization>------ -   #VUID-vkCmdPipelineBarrier-srcStageMask-06461# Any pipeline stage---     included in @srcStageMask@ /must/ be supported by the capabilities---     of the queue family specified by the @queueFamilyIndex@ member of---     the 'Vulkan.Core10.CommandPool.CommandPoolCreateInfo' structure that---     was used to create the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from, as specified in the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-supported table of supported pipeline stages>------ -   #VUID-vkCmdPipelineBarrier-dstStageMask-06462# Any pipeline stage---     included in @dstStageMask@ /must/ be supported by the capabilities---     of the queue family specified by the @queueFamilyIndex@ member of---     the 'Vulkan.Core10.CommandPool.CommandPoolCreateInfo' structure that---     was used to create the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from, as specified in the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-supported table of supported pipeline stages>------ == Valid Usage (Implicit)------ -   #VUID-vkCmdPipelineBarrier-commandBuffer-parameter# @commandBuffer@---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdPipelineBarrier-srcStageMask-parameter# @srcStageMask@---     /must/ be a valid combination of---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'---     values------ -   #VUID-vkCmdPipelineBarrier-dstStageMask-parameter# @dstStageMask@---     /must/ be a valid combination of---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'---     values------ -   #VUID-vkCmdPipelineBarrier-dependencyFlags-parameter#---     @dependencyFlags@ /must/ be a valid combination of---     'Vulkan.Core10.Enums.DependencyFlagBits.DependencyFlagBits' values------ -   #VUID-vkCmdPipelineBarrier-pMemoryBarriers-parameter# If---     @memoryBarrierCount@ is not @0@, @pMemoryBarriers@ /must/ be a valid---     pointer to an array of @memoryBarrierCount@ valid---     'Vulkan.Core10.OtherTypes.MemoryBarrier' structures------ -   #VUID-vkCmdPipelineBarrier-pBufferMemoryBarriers-parameter# If---     @bufferMemoryBarrierCount@ is not @0@, @pBufferMemoryBarriers@---     /must/ be a valid pointer to an array of @bufferMemoryBarrierCount@---     valid 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier' structures------ -   #VUID-vkCmdPipelineBarrier-pImageMemoryBarriers-parameter# If---     @imageMemoryBarrierCount@ is not @0@, @pImageMemoryBarriers@ /must/---     be a valid pointer to an array of @imageMemoryBarrierCount@ valid---     'Vulkan.Core10.OtherTypes.ImageMemoryBarrier' structures------ -   #VUID-vkCmdPipelineBarrier-commandBuffer-recording# @commandBuffer@---     /must/ be in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>------ -   #VUID-vkCmdPipelineBarrier-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support transfer, graphics, compute, decode,---     or encode operations------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |--- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+--- | Primary                                                                                                                    | Both                                                                                                                   | Both                                                                                                                        | Transfer                                                                                                              | Synchronization                                                                                                                        |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Graphics                                                                                                              |                                                                                                                                        |--- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Compute                                                                                                               |                                                                                                                                        |--- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Decode                                                                                                                |                                                                                                                                        |--- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Encode                                                                                                                |                                                                                                                                        |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier',--- 'Vulkan.Core10.Handles.CommandBuffer',--- 'Vulkan.Core10.Enums.DependencyFlagBits.DependencyFlags',--- 'Vulkan.Core10.OtherTypes.ImageMemoryBarrier',--- 'Vulkan.Core10.OtherTypes.MemoryBarrier',--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlags'-cmdPipelineBarrier :: forall io-                    . (MonadIO io)-                   => -- | @commandBuffer@ is the command buffer into which the command is-                      -- recorded.-                      CommandBuffer-                   -> -- | @srcStageMask@ is a bitmask of-                      -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'-                      -- specifying the-                      -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masks source stages>.-                      ("srcStageMask" ::: PipelineStageFlags)-                   -> -- | @dstStageMask@ is a bitmask of-                      -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'-                      -- specifying the-                      -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masks destination stages>.-                      ("dstStageMask" ::: PipelineStageFlags)-                   -> -- | @dependencyFlags@ is a bitmask of-                      -- 'Vulkan.Core10.Enums.DependencyFlagBits.DependencyFlagBits' specifying-                      -- how execution and memory dependencies are formed.-                      DependencyFlags-                   -> -- | @pMemoryBarriers@ is a pointer to an array of-                      -- 'Vulkan.Core10.OtherTypes.MemoryBarrier' structures.-                      ("memoryBarriers" ::: Vector MemoryBarrier)-                   -> -- | @pBufferMemoryBarriers@ is a pointer to an array of-                      -- 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier' structures.-                      ("bufferMemoryBarriers" ::: Vector (SomeStruct BufferMemoryBarrier))-                   -> -- | @pImageMemoryBarriers@ is a pointer to an array of-                      -- 'Vulkan.Core10.OtherTypes.ImageMemoryBarrier' structures.-                      ("imageMemoryBarriers" ::: Vector (SomeStruct ImageMemoryBarrier))-                   -> io ()-cmdPipelineBarrier commandBuffer-                     srcStageMask-                     dstStageMask-                     dependencyFlags-                     memoryBarriers-                     bufferMemoryBarriers-                     imageMemoryBarriers = liftIO . evalContT $ do-  let vkCmdPipelineBarrierPtr = pVkCmdPipelineBarrier (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  lift $ unless (vkCmdPipelineBarrierPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdPipelineBarrier is null" Nothing Nothing-  let vkCmdPipelineBarrier' = mkVkCmdPipelineBarrier vkCmdPipelineBarrierPtr-  pPMemoryBarriers <- ContT $ allocaBytes @MemoryBarrier ((Data.Vector.length (memoryBarriers)) * 24)-  lift $ Data.Vector.imapM_ (\i e -> poke (pPMemoryBarriers `plusPtr` (24 * (i)) :: Ptr MemoryBarrier) (e)) (memoryBarriers)-  pPBufferMemoryBarriers <- ContT $ allocaBytes @(BufferMemoryBarrier _) ((Data.Vector.length (bufferMemoryBarriers)) * 56)-  Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPBufferMemoryBarriers `plusPtr` (56 * (i)) :: Ptr (BufferMemoryBarrier _))) (e) . ($ ())) (bufferMemoryBarriers)-  pPImageMemoryBarriers <- ContT $ allocaBytes @(ImageMemoryBarrier _) ((Data.Vector.length (imageMemoryBarriers)) * 72)-  Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPImageMemoryBarriers `plusPtr` (72 * (i)) :: Ptr (ImageMemoryBarrier _))) (e) . ($ ())) (imageMemoryBarriers)-  lift $ traceAroundEvent "vkCmdPipelineBarrier" (vkCmdPipelineBarrier'-                                                    (commandBufferHandle (commandBuffer))-                                                    (srcStageMask)-                                                    (dstStageMask)-                                                    (dependencyFlags)-                                                    ((fromIntegral (Data.Vector.length $ (memoryBarriers)) :: Word32))-                                                    (pPMemoryBarriers)-                                                    ((fromIntegral (Data.Vector.length $ (bufferMemoryBarriers)) :: Word32))-                                                    (forgetExtensions (pPBufferMemoryBarriers))-                                                    ((fromIntegral (Data.Vector.length $ (imageMemoryBarriers)) :: Word32))-                                                    (forgetExtensions (pPImageMemoryBarriers)))-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdBeginQuery-  :: FunPtr (Ptr CommandBuffer_T -> QueryPool -> Word32 -> QueryControlFlags -> IO ()) -> Ptr CommandBuffer_T -> QueryPool -> Word32 -> QueryControlFlags -> IO ()---- | vkCmdBeginQuery - Begin a query------ = Description------ If the @queryType@ of the pool is--- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_OCCLUSION' and @flags@--- contains--- 'Vulkan.Core10.Enums.QueryControlFlagBits.QUERY_CONTROL_PRECISE_BIT', an--- implementation /must/ return a result that matches the actual number of--- samples passed. This is described in more detail in--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-occlusion Occlusion Queries>.------ Calling 'cmdBeginQuery' is equivalent to calling--- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdBeginQueryIndexedEXT'--- with the @index@ parameter set to zero.------ After beginning a query, that query is considered /active/ within the--- command buffer it was called in until that same query is ended. Queries--- active in a primary command buffer when secondary command buffers are--- executed are considered active for those secondary command buffers.------ Furthermore, if the query is started within a video coding scope, the--- following command buffer states are initialized for the query type:------ -   #queries-operation-active-query-index# The /active_query_index/ is---     set to the value specified by @query@.------ -   #queries-operation-last-activatable-query-index# The /last---     activatable query index/ is also set to the value specified by---     @query@.------ Each--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#video-coding video coding operation>--- stores a result to the query corresponding to the current active query--- index, followed by incrementing the active query index. If the active--- query index gets incremented past the last activatable query index,--- issuing any further video coding operations results in undefined--- behavior.------ Note------ In practice, this means that currently no more than a single video--- coding operation /must/ be issued between a begin and end query pair.------ This command defines an execution dependency between other query--- commands that reference the same query.------ The first--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>--- includes all commands which reference the queries in @queryPool@--- indicated by @query@ that occur earlier in--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.------ The second--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>--- includes all commands which reference the queries in @queryPool@--- indicated by @query@ that occur later in--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.------ The operation of this command happens after the first scope and happens--- before the second scope.------ == Valid Usage------ -   #VUID-vkCmdBeginQuery-None-00807# All queries used by the command---     /must/ be /unavailable/------ -   #VUID-vkCmdBeginQuery-queryType-02804# The @queryType@ used to---     create @queryPool@ /must/ not be---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_TIMESTAMP'------ -   #VUID-vkCmdBeginQuery-queryType-04728# The @queryType@ used to---     create @queryPool@ /must/ not be---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR'---     or---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR'------ -   #VUID-vkCmdBeginQuery-queryType-06741# The @queryType@ used to---     create @queryPool@ /must/ not be---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR'---     or---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR'------ -   #VUID-vkCmdBeginQuery-queryType-04729# The @queryType@ used to---     create @queryPool@ /must/ not be---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV'------ -   #VUID-vkCmdBeginQuery-queryType-00800# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-occlusionQueryPrecise occlusionQueryPrecise>---     feature is not enabled, or the @queryType@ used to create---     @queryPool@ was not---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_OCCLUSION', @flags@ /must/---     not contain---     'Vulkan.Core10.Enums.QueryControlFlagBits.QUERY_CONTROL_PRECISE_BIT'------ -   #VUID-vkCmdBeginQuery-query-00802# @query@ /must/ be less than the---     number of queries in @queryPool@------ -   #VUID-vkCmdBeginQuery-queryType-00803# If the @queryType@ used to---     create @queryPool@ was---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_OCCLUSION', the---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics operations------ -   #VUID-vkCmdBeginQuery-queryType-00804# If the @queryType@ used to---     create @queryPool@ was---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PIPELINE_STATISTICS' and---     any of the @pipelineStatistics@ indicate graphics operations, the---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics operations------ -   #VUID-vkCmdBeginQuery-queryType-00805# If the @queryType@ used to---     create @queryPool@ was---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PIPELINE_STATISTICS' and---     any of the @pipelineStatistics@ indicate compute operations, the---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support compute operations------ -   #VUID-vkCmdBeginQuery-commandBuffer-01885# @commandBuffer@ /must/---     not be a protected command buffer------ -   #VUID-vkCmdBeginQuery-query-00808# If called within a render pass---     instance, the sum of @query@ and the number of bits set in the---     current subpass’s view mask /must/ be less than or equal to the---     number of queries in @queryPool@------ -   #VUID-vkCmdBeginQuery-queryType-07126# If the @queryType@ used to---     create @queryPool@ was @VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR@, then---     the 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ have been created with a queue family index---     that supports---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-result-status-only result status queries>,---     as indicated by---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFamilyQueryResultStatusPropertiesKHR VkQueueFamilyQueryResultStatusPropertiesKHR>::@queryResultStatusSupport@------ -   #VUID-vkCmdBeginQuery-None-07127# If there is a bound video session,---     then there /must/ be no---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-operation-active active>---     queries------ -   #VUID-vkCmdBeginQuery-queryType-07128# If the @queryType@ used to---     create @queryPool@ was @VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR@ and---     there is a bound video session, then @queryPool@ /must/ have been---     created with a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileInfoKHR VkVideoProfileInfoKHR>---     structure included in the @pNext@ chain of---     'Vulkan.Core10.Query.QueryPoolCreateInfo' identical to the one---     specified in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoSessionCreateInfoKHR VkVideoSessionCreateInfoKHR>::@pVideoProfile@---     the bound video session was created with------ -   #VUID-vkCmdBeginQuery-queryType-04862# If the @queryType@ used to---     create @queryPool@ was @VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR@,---     then the 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@---     was allocated from /must/ support---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#video-encode-operations video encode operations>------ -   #VUID-vkCmdBeginQuery-queryType-07129# If the @queryType@ used to---     create @queryPool@ was @VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR@,---     then there /must/ be a bound video session------ -   #VUID-vkCmdBeginQuery-queryType-07130# If the @queryType@ used to---     create @queryPool@ was @VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR@ and---     there is a bound video session, then @queryPool@ /must/ have been---     created with a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileInfoKHR VkVideoProfileInfoKHR>---     structure included in the @pNext@ chain of---     'Vulkan.Core10.Query.QueryPoolCreateInfo' identical to the one---     specified in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoSessionCreateInfoKHR VkVideoSessionCreateInfoKHR>::@pVideoProfile@---     the bound video session was created with------ -   #VUID-vkCmdBeginQuery-queryType-07131# If the @queryType@ used to---     create @queryPool@ was not @VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR@ or---     @VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR@, then there /must/ be no---     bound video session------ -   #VUID-vkCmdBeginQuery-queryPool-01922# @queryPool@ /must/ have been---     created with a @queryType@ that differs from that of any queries---     that are---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-active active>---     within @commandBuffer@------ -   #VUID-vkCmdBeginQuery-queryType-07070# If the @queryType@ used to---     create @queryPool@ was---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT'---     the 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics operations------ -   #VUID-vkCmdBeginQuery-queryType-02327# If the @queryType@ used to---     create @queryPool@ was---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT'---     the 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics operations------ -   #VUID-vkCmdBeginQuery-queryType-02328# If the @queryType@ used to---     create @queryPool@ was---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT'---     then---     'Vulkan.Extensions.VK_EXT_transform_feedback.PhysicalDeviceTransformFeedbackPropertiesEXT'::@transformFeedbackQueries@---     /must/ be supported------ -   #VUID-vkCmdBeginQuery-queryType-06687# If the @queryType@ used to---     create @queryPool@ was---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'---     the 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics operations------ -   #VUID-vkCmdBeginQuery-queryType-06688# If the @queryType@ used to---     create @queryPool@ was---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'---     then---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitivesGeneratedQuery primitivesGeneratedQuery>---     /must/ be enabled------ -   #VUID-vkCmdBeginQuery-queryPool-07289# If @queryPool@ was created---     with a @queryType@ of---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR',---     then the---     'Vulkan.Extensions.VK_KHR_performance_query.QueryPoolPerformanceCreateInfoKHR'::@queueFamilyIndex@---     @queryPool@ was created with /must/ equal the queue family index of---     the 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from------ -   #VUID-vkCmdBeginQuery-queryPool-03223# If @queryPool@ was created---     with a @queryType@ of---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR',---     the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#profiling-lock profiling lock>---     /must/ have been held before---     'Vulkan.Core10.CommandBuffer.beginCommandBuffer' was called on---     @commandBuffer@------ -   #VUID-vkCmdBeginQuery-queryPool-03224# If @queryPool@ was created---     with a @queryType@ of---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR' and---     one of the counters used to create @queryPool@ was---     'Vulkan.Extensions.VK_KHR_performance_query.PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR',---     the query begin /must/ be the first recorded command in---     @commandBuffer@------ -   #VUID-vkCmdBeginQuery-queryPool-03225# If @queryPool@ was created---     with a @queryType@ of---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR' and---     one of the counters used to create @queryPool@ was---     'Vulkan.Extensions.VK_KHR_performance_query.PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR',---     the begin command /must/ not be recorded within a render pass---     instance------ -   #VUID-vkCmdBeginQuery-queryPool-03226# If @queryPool@ was created---     with a @queryType@ of---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR' and---     another query pool with a @queryType@---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR' has---     been used within @commandBuffer@, its parent primary command buffer---     or secondary command buffer recorded within the same parent primary---     command buffer as @commandBuffer@, the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-performanceCounterMultipleQueryPools performanceCounterMultipleQueryPools>---     feature /must/ be enabled------ -   #VUID-vkCmdBeginQuery-None-02863# If @queryPool@ was created with a---     @queryType@ of---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR',---     this command /must/ not be recorded in a command buffer that, either---     directly or through secondary command buffers, also contains a---     'cmdResetQueryPool' command affecting the same query------ == Valid Usage (Implicit)------ -   #VUID-vkCmdBeginQuery-commandBuffer-parameter# @commandBuffer@---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdBeginQuery-queryPool-parameter# @queryPool@ /must/ be a---     valid 'Vulkan.Core10.Handles.QueryPool' handle------ -   #VUID-vkCmdBeginQuery-flags-parameter# @flags@ /must/ be a valid---     combination of---     'Vulkan.Core10.Enums.QueryControlFlagBits.QueryControlFlagBits'---     values------ -   #VUID-vkCmdBeginQuery-commandBuffer-recording# @commandBuffer@---     /must/ be in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>------ -   #VUID-vkCmdBeginQuery-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics, compute, decode, or encode---     operations------ -   #VUID-vkCmdBeginQuery-commonparent# Both of @commandBuffer@, and---     @queryPool@ /must/ have been created, allocated, or retrieved from---     the same 'Vulkan.Core10.Handles.Device'------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |--- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+--- | Primary                                                                                                                    | Both                                                                                                                   | Both                                                                                                                        | Graphics                                                                                                              | Action                                                                                                                                 |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Compute                                                                                                               | State                                                                                                                                  |--- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Decode                                                                                                                |                                                                                                                                        |--- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Encode                                                                                                                |                                                                                                                                        |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.CommandBuffer',--- 'Vulkan.Core10.Enums.QueryControlFlagBits.QueryControlFlags',--- 'Vulkan.Core10.Handles.QueryPool',--- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdBeginQueryIndexedEXT',--- 'cmdEndQuery',--- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdEndQueryIndexedEXT'-cmdBeginQuery :: forall io-               . (MonadIO io)-              => -- | @commandBuffer@ is the command buffer into which this command will be-                 -- recorded.-                 CommandBuffer-              -> -- | @queryPool@ is the query pool that will manage the results of the query.-                 QueryPool-              -> -- | @query@ is the query index within the query pool that will contain the-                 -- results.-                 ("query" ::: Word32)-              -> -- | @flags@ is a bitmask of-                 -- 'Vulkan.Core10.Enums.QueryControlFlagBits.QueryControlFlagBits'-                 -- specifying constraints on the types of queries that /can/ be performed.-                 QueryControlFlags-              -> io ()-cmdBeginQuery commandBuffer queryPool query flags = liftIO $ do-  let vkCmdBeginQueryPtr = pVkCmdBeginQuery (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  unless (vkCmdBeginQueryPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBeginQuery is null" Nothing Nothing-  let vkCmdBeginQuery' = mkVkCmdBeginQuery vkCmdBeginQueryPtr-  traceAroundEvent "vkCmdBeginQuery" (vkCmdBeginQuery'-                                        (commandBufferHandle (commandBuffer))-                                        (queryPool)-                                        (query)-                                        (flags))-  pure $ ()---- | This function will call the supplied action between calls to--- 'cmdBeginQuery' and 'cmdEndQuery'------ Note that 'cmdEndQuery' is *not* called if an exception is thrown by the--- inner action.-cmdUseQuery :: forall io r . MonadIO io => CommandBuffer -> QueryPool -> Word32 -> QueryControlFlags -> io r -> io r-cmdUseQuery commandBuffer queryPool query flags a =-  (cmdBeginQuery commandBuffer-                   queryPool-                   query-                   flags) *> a <* (cmdEndQuery commandBuffer queryPool query)---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdEndQuery-  :: FunPtr (Ptr CommandBuffer_T -> QueryPool -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> QueryPool -> Word32 -> IO ()---- | vkCmdEndQuery - Ends a query------ = Description------ The command completes the query in @queryPool@ identified by @query@,--- and marks it as available.------ This command defines an execution dependency between other query--- commands that reference the same query.------ The first--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>--- includes all commands which reference the queries in @queryPool@--- indicated by @query@ that occur earlier in--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.------ The second--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>--- includes only the operation of this command.------ Calling 'cmdEndQuery' is equivalent to calling--- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdEndQueryIndexedEXT' with--- the @index@ parameter set to zero.------ == Valid Usage------ -   #VUID-vkCmdEndQuery-None-01923# All queries used by the command---     /must/ be---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-active active>------ -   #VUID-vkCmdEndQuery-query-00810# @query@ /must/ be less than the---     number of queries in @queryPool@------ -   #VUID-vkCmdEndQuery-commandBuffer-01886# @commandBuffer@ /must/ not---     be a protected command buffer------ -   #VUID-vkCmdEndQuery-query-00812# If 'cmdEndQuery' is called within a---     render pass instance, the sum of @query@ and the number of bits set---     in the current subpass’s view mask /must/ be less than or equal to---     the number of queries in @queryPool@------ -   #VUID-vkCmdEndQuery-queryPool-03227# If @queryPool@ was created with---     a @queryType@ of---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR' and---     one or more of the counters used to create @queryPool@ was---     'Vulkan.Extensions.VK_KHR_performance_query.PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR',---     the 'cmdEndQuery' /must/ be the last recorded command in---     @commandBuffer@------ -   #VUID-vkCmdEndQuery-queryPool-03228# If @queryPool@ was created with---     a @queryType@ of---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR' and---     one or more of the counters used to create @queryPool@ was---     'Vulkan.Extensions.VK_KHR_performance_query.PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR',---     the 'cmdEndQuery' /must/ not be recorded within a render pass---     instance------ -   #VUID-vkCmdEndQuery-None-07007# If called within a subpass of a---     render pass instance, the corresponding 'cmdBeginQuery'* command---     /must/ have been called previously within the same subpass------ -   #VUID-vkCmdEndQuery-None-07008# If called outside of a render pass---     instance, the corresponding 'cmdBeginQuery'* command /must/ have---     been called outside of a render pass instance------ == Valid Usage (Implicit)------ -   #VUID-vkCmdEndQuery-commandBuffer-parameter# @commandBuffer@ /must/---     be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdEndQuery-queryPool-parameter# @queryPool@ /must/ be a---     valid 'Vulkan.Core10.Handles.QueryPool' handle------ -   #VUID-vkCmdEndQuery-commandBuffer-recording# @commandBuffer@ /must/---     be in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>------ -   #VUID-vkCmdEndQuery-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics, compute, decode, or encode---     operations------ -   #VUID-vkCmdEndQuery-commonparent# Both of @commandBuffer@, and---     @queryPool@ /must/ have been created, allocated, or retrieved from---     the same 'Vulkan.Core10.Handles.Device'------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |--- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+--- | Primary                                                                                                                    | Both                                                                                                                   | Both                                                                                                                        | Graphics                                                                                                              | Action                                                                                                                                 |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Compute                                                                                                               | State                                                                                                                                  |--- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Decode                                                                                                                |                                                                                                                                        |--- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Encode                                                                                                                |                                                                                                                                        |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.CommandBuffer',--- 'Vulkan.Core10.Handles.QueryPool', 'cmdBeginQuery',--- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdBeginQueryIndexedEXT',--- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdEndQueryIndexedEXT'-cmdEndQuery :: forall io-             . (MonadIO io)-            => -- | @commandBuffer@ is the command buffer into which this command will be-               -- recorded.-               CommandBuffer-            -> -- | @queryPool@ is the query pool that is managing the results of the query.-               QueryPool-            -> -- | @query@ is the query index within the query pool where the result is-               -- stored.-               ("query" ::: Word32)-            -> io ()-cmdEndQuery commandBuffer queryPool query = liftIO $ do-  let vkCmdEndQueryPtr = pVkCmdEndQuery (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  unless (vkCmdEndQueryPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdEndQuery is null" Nothing Nothing-  let vkCmdEndQuery' = mkVkCmdEndQuery vkCmdEndQueryPtr-  traceAroundEvent "vkCmdEndQuery" (vkCmdEndQuery'-                                      (commandBufferHandle (commandBuffer))-                                      (queryPool)-                                      (query))-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdResetQueryPool-  :: FunPtr (Ptr CommandBuffer_T -> QueryPool -> Word32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> QueryPool -> Word32 -> Word32 -> IO ()---- | vkCmdResetQueryPool - Reset queries in a query pool------ = Description------ When executed on a queue, this command sets the status of query indices--- [@firstQuery@, @firstQuery@ + @queryCount@ - 1] to unavailable.------ This command defines an execution dependency between other query--- commands that reference the same query.------ The first--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>--- includes all commands which reference the queries in @queryPool@--- indicated by @firstQuery@ and @queryCount@ that occur earlier in--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.------ The second--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>--- includes all commands which reference the queries in @queryPool@--- indicated by @firstQuery@ and @queryCount@ that occur later in--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.------ The operation of this command happens after the first scope and happens--- before the second scope.------ If the @queryType@ used to create @queryPool@ was--- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR', this--- command sets the status of query indices [@firstQuery@, @firstQuery@ +--- @queryCount@ - 1] to unavailable for each pass of @queryPool@, as--- indicated by a call to--- 'Vulkan.Extensions.VK_KHR_performance_query.getPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR'.------ Note------ Because 'cmdResetQueryPool' resets all the passes of the indicated--- queries, applications must not record a 'cmdResetQueryPool' command for--- a @queryPool@ created with--- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR' in a--- command buffer that needs to be submitted multiple times as indicated by--- a call to--- 'Vulkan.Extensions.VK_KHR_performance_query.getPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR'.--- Otherwise applications will never be able to complete the recorded--- queries.------ == Valid Usage------ -   #VUID-vkCmdResetQueryPool-firstQuery-00796# @firstQuery@ /must/ be---     less than the number of queries in @queryPool@------ -   #VUID-vkCmdResetQueryPool-firstQuery-00797# The sum of @firstQuery@---     and @queryCount@ /must/ be less than or equal to the number of---     queries in @queryPool@------ -   #VUID-vkCmdResetQueryPool-None-02841# All queries used by the---     command /must/ not be active------ -   #VUID-vkCmdResetQueryPool-firstQuery-02862# If @queryPool@ was---     created with---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR',---     this command /must/ not be recorded in a command buffer that, either---     directly or through secondary command buffers, also contains begin---     commands for a query from the set of queries [@firstQuery@,---     @firstQuery@ + @queryCount@ - 1]------ == Valid Usage (Implicit)------ -   #VUID-vkCmdResetQueryPool-commandBuffer-parameter# @commandBuffer@---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdResetQueryPool-queryPool-parameter# @queryPool@ /must/ be---     a valid 'Vulkan.Core10.Handles.QueryPool' handle------ -   #VUID-vkCmdResetQueryPool-commandBuffer-recording# @commandBuffer@---     /must/ be in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>------ -   #VUID-vkCmdResetQueryPool-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics, compute, decode, encode, or---     optical flow operations------ -   #VUID-vkCmdResetQueryPool-renderpass# This command /must/ only be---     called outside of a render pass instance------ -   #VUID-vkCmdResetQueryPool-videocoding# This command /must/ only be---     called outside of a video coding scope------ -   #VUID-vkCmdResetQueryPool-commonparent# Both of @commandBuffer@, and---     @queryPool@ /must/ have been created, allocated, or retrieved from---     the same 'Vulkan.Core10.Handles.Device'------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |--- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+--- | Primary                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Compute                                                                                                               |                                                                                                                                        |--- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Decode                                                                                                                |                                                                                                                                        |--- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Encode                                                                                                                |                                                                                                                                        |--- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Opticalflow                                                                                                           |                                                                                                                                        |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.CommandBuffer', 'Vulkan.Core10.Handles.QueryPool'-cmdResetQueryPool :: forall io-                   . (MonadIO io)-                  => -- | @commandBuffer@ is the command buffer into which this command will be-                     -- recorded.-                     CommandBuffer-                  -> -- | @queryPool@ is the handle of the query pool managing the queries being-                     -- reset.-                     QueryPool-                  -> -- | @firstQuery@ is the initial query index to reset.-                     ("firstQuery" ::: Word32)-                  -> -- | @queryCount@ is the number of queries to reset.-                     ("queryCount" ::: Word32)-                  -> io ()-cmdResetQueryPool commandBuffer queryPool firstQuery queryCount = liftIO $ do-  let vkCmdResetQueryPoolPtr = pVkCmdResetQueryPool (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  unless (vkCmdResetQueryPoolPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdResetQueryPool is null" Nothing Nothing-  let vkCmdResetQueryPool' = mkVkCmdResetQueryPool vkCmdResetQueryPoolPtr-  traceAroundEvent "vkCmdResetQueryPool" (vkCmdResetQueryPool'-                                            (commandBufferHandle (commandBuffer))-                                            (queryPool)-                                            (firstQuery)-                                            (queryCount))-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdWriteTimestamp-  :: FunPtr (Ptr CommandBuffer_T -> PipelineStageFlagBits -> QueryPool -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> PipelineStageFlagBits -> QueryPool -> Word32 -> IO ()---- | vkCmdWriteTimestamp - Write a device timestamp into a query object------ = Description------ When 'cmdWriteTimestamp' is submitted to a queue, it defines an--- execution dependency on commands that were submitted before it, and--- writes a timestamp to a query pool.------ The first--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>--- includes all commands that occur earlier in--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.--- The synchronization scope is limited to operations on the pipeline stage--- specified by @pipelineStage@.------ The second--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>--- includes only the timestamp write operation.------ Note------ Implementations may write the timestamp at any stage that is--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-order logically later>--- than @stage@.------ Any timestamp write that--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-execution happens-after>--- another timestamp write in the same submission /must/ not have a lower--- value unless its value overflows the maximum supported integer bit width--- of the query. If @VK_EXT_calibrated_timestamps@ is enabled, this extends--- to timestamp writes across all submissions on the same logical device:--- any timestamp write that--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-execution happens-after>--- another /must/ not have a lower value unless its value overflows the--- maximum supported integer bit width of the query. Timestamps written by--- this command /must/ be in the--- 'Vulkan.Extensions.VK_EXT_calibrated_timestamps.TIME_DOMAIN_DEVICE_EXT'--- <VkTimeDomainEXT.html time domain>. If an overflow occurs, the timestamp--- value /must/ wrap back to zero.------ Note------ Comparisons between timestamps should be done between timestamps where--- they are guaranteed to not decrease. For example, subtracting an older--- timestamp from a newer one to determine the execution time of a sequence--- of commands is only a reliable measurement if the two timestamp writes--- were performed in the same submission, or if the writes were performed--- on the same logical device and @VK_EXT_calibrated_timestamps@ is--- enabled.------ If 'cmdWriteTimestamp' is called while executing a render pass instance--- that has multiview enabled, the timestamp uses N consecutive query--- indices in the query pool (starting at @query@) where N is the number of--- bits set in the view mask of the subpass the command is executed in. The--- resulting query values are determined by an implementation-dependent--- choice of one of the following behaviors:------ -   The first query is a timestamp value and (if more than one bit is---     set in the view mask) zero is written to the remaining queries. If---     two timestamps are written in the same subpass, the sum of the---     execution time of all views between those commands is the difference---     between the first query written by each command.------ -   All N queries are timestamp values. If two timestamps are written in---     the same subpass, the sum of the execution time of all views between---     those commands is the sum of the difference between corresponding---     queries written by each command. The difference between---     corresponding queries /may/ be the execution time of a single view.------ In either case, the application /can/ sum the differences between all N--- queries to determine the total execution time.------ == Valid Usage------ -   #VUID-vkCmdWriteTimestamp-pipelineStage-04074# @pipelineStage@---     /must/ be a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-supported valid stage>---     for the queue family that was used to create the command pool that---     @commandBuffer@ was allocated from------ -   #VUID-vkCmdWriteTimestamp-pipelineStage-04075# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader>---     feature is not enabled, @pipelineStage@ /must/ not be---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT'------ -   #VUID-vkCmdWriteTimestamp-pipelineStage-04076# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>---     feature is not enabled, @pipelineStage@ /must/ not be---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT'---     or---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT'------ -   #VUID-vkCmdWriteTimestamp-pipelineStage-04077# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditionalRendering>---     feature is not enabled, @pipelineStage@ /must/ not be---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT'------ -   #VUID-vkCmdWriteTimestamp-pipelineStage-04078# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragmentDensityMap>---     feature is not enabled, @pipelineStage@ /must/ not be---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT'------ -   #VUID-vkCmdWriteTimestamp-pipelineStage-04079# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transformFeedback>---     feature is not enabled, @pipelineStage@ /must/ not be---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'------ -   #VUID-vkCmdWriteTimestamp-pipelineStage-04080# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>---     feature is not enabled, @pipelineStage@ /must/ not be---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_EXT'------ -   #VUID-vkCmdWriteTimestamp-pipelineStage-07077# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>---     feature is not enabled, @pipelineStage@ /must/ not be---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_EXT'------ -   #VUID-vkCmdWriteTimestamp-shadingRateImage-07314# If neither the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>---     or---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>---     are enabled, @pipelineStage@ /must/ not be---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'------ -   #VUID-vkCmdWriteTimestamp-synchronization2-06489# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2>---     feature is not enabled, @pipelineStage@ /must/ not be---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_NONE'------ -   #VUID-vkCmdWriteTimestamp-rayTracingPipeline-07943# If neither the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracing VK_NV_ray_tracing>---     extension or---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayTracingPipeline rayTracingPipeline feature>---     are enabled, @pipelineStage@ /must/ not be---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR'------ -   #VUID-vkCmdWriteTimestamp-queryPool-01416# @queryPool@ /must/ have---     been created with a @queryType@ of---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_TIMESTAMP'------ -   #VUID-vkCmdWriteTimestamp-timestampValidBits-00829# The command---     pool’s queue family /must/ support a non-zero @timestampValidBits@------ -   #VUID-vkCmdWriteTimestamp-query-04904# @query@ /must/ be less than---     the number of queries in @queryPool@------ -   #VUID-vkCmdWriteTimestamp-None-00830# All queries used by the---     command /must/ be /unavailable/------ -   #VUID-vkCmdWriteTimestamp-query-00831# If 'cmdWriteTimestamp' is---     called within a render pass instance, the sum of @query@ and the---     number of bits set in the current subpass’s view mask /must/ be less---     than or equal to the number of queries in @queryPool@------ == Valid Usage (Implicit)------ -   #VUID-vkCmdWriteTimestamp-commandBuffer-parameter# @commandBuffer@---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdWriteTimestamp-pipelineStage-parameter# @pipelineStage@---     /must/ be a valid---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'---     value------ -   #VUID-vkCmdWriteTimestamp-queryPool-parameter# @queryPool@ /must/ be---     a valid 'Vulkan.Core10.Handles.QueryPool' handle------ -   #VUID-vkCmdWriteTimestamp-commandBuffer-recording# @commandBuffer@---     /must/ be in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>------ -   #VUID-vkCmdWriteTimestamp-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support transfer, graphics, compute, decode,---     encode, or optical flow operations------ -   #VUID-vkCmdWriteTimestamp-commonparent# Both of @commandBuffer@, and---     @queryPool@ /must/ have been created, allocated, or retrieved from---     the same 'Vulkan.Core10.Handles.Device'------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |--- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+--- | Primary                                                                                                                    | Both                                                                                                                   | Both                                                                                                                        | Transfer                                                                                                              | Action                                                                                                                                 |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Graphics                                                                                                              |                                                                                                                                        |--- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Compute                                                                                                               |                                                                                                                                        |--- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Decode                                                                                                                |                                                                                                                                        |--- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Encode                                                                                                                |                                                                                                                                        |--- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Opticalflow                                                                                                           |                                                                                                                                        |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.CommandBuffer',--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits',--- 'Vulkan.Core10.Handles.QueryPool'-cmdWriteTimestamp :: forall io-                   . (MonadIO io)-                  => -- | @commandBuffer@ is the command buffer into which the command will be-                     -- recorded.-                     CommandBuffer-                  -> -- | @pipelineStage@ is a-                     -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits' value,-                     -- specifying a stage of the pipeline.-                     PipelineStageFlagBits-                  -> -- | @queryPool@ is the query pool that will manage the timestamp.-                     QueryPool-                  -> -- | @query@ is the query within the query pool that will contain the-                     -- timestamp.-                     ("query" ::: Word32)-                  -> io ()-cmdWriteTimestamp commandBuffer pipelineStage queryPool query = liftIO $ do-  let vkCmdWriteTimestampPtr = pVkCmdWriteTimestamp (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  unless (vkCmdWriteTimestampPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdWriteTimestamp is null" Nothing Nothing-  let vkCmdWriteTimestamp' = mkVkCmdWriteTimestamp vkCmdWriteTimestampPtr-  traceAroundEvent "vkCmdWriteTimestamp" (vkCmdWriteTimestamp'-                                            (commandBufferHandle (commandBuffer))-                                            (pipelineStage)-                                            (queryPool)-                                            (query))-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdCopyQueryPoolResults-  :: FunPtr (Ptr CommandBuffer_T -> QueryPool -> Word32 -> Word32 -> Buffer -> DeviceSize -> DeviceSize -> QueryResultFlags -> IO ()) -> Ptr CommandBuffer_T -> QueryPool -> Word32 -> Word32 -> Buffer -> DeviceSize -> DeviceSize -> QueryResultFlags -> IO ()---- | vkCmdCopyQueryPoolResults - Copy the results of queries in a query pool--- to a buffer object------ = Description------ Any results written for a query are written according to--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-memorylayout a layout dependent on the query type>.------ Results for any query in @queryPool@ identified by @firstQuery@ and--- @queryCount@ that is available are copied to @dstBuffer@.------ If--- 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_WITH_AVAILABILITY_BIT'--- is set, results for all queries in @queryPool@ identified by--- @firstQuery@ and @queryCount@ are copied to @dstBuffer@, along with an--- extra availability value written directly after the results of each--- query and interpreted as an unsigned integer. A value of zero indicates--- that the results are not yet available, otherwise the query is complete--- and results are available.------ If @VK_QUERY_RESULT_WITH_STATUS_BIT_KHR@ is set, results for all queries--- in @queryPool@ identified by @firstQuery@ and @queryCount@ are copied to--- @dstBuffer@, along with an extra status value written directly after the--- results of each query and interpreted as a signed integer. A value of--- zero indicates that the results are not yet available. Positive values--- indicate that the operations within the query completed successfully,--- and the query results are valid. Negative values indicate that the--- operations within the query completed unsuccessfully.------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueryResultStatusKHR VkQueryResultStatusKHR>--- defines specific meaning for values returned here, though--- implementations are free to return other values.------ Results for any available query written by this command are final and--- represent the final result of the query. If--- 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_PARTIAL_BIT' is--- set, then for any query that is unavailable, an intermediate result--- between zero and the final result value is written for that query.--- Otherwise, any result written by this command is undefined.------ If 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_64_BIT' is set,--- results and availability or status values for all queries are written as--- an array of 64-bit values. If the @queryPool@ was created with--- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR',--- results for each query are written as an array of the type indicated by--- 'Vulkan.Extensions.VK_KHR_performance_query.PerformanceCounterKHR'::@storage@--- for the counter being queried. Otherwise, results and availability or--- status values are written as an array of 32-bit values. If an unsigned--- integer query’s value overflows the result type, the value /may/ either--- wrap or saturate. If a signed integer query’s value overflows the result--- type, the value is undefined. If a floating point query’s value is not--- representable as the result type, the value is undefined.------ This command defines an execution dependency between other query--- commands that reference the same query.------ The first--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>--- includes all commands which reference the queries in @queryPool@--- indicated by @query@ that occur earlier in--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.--- If @flags@ does not include--- 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_WAIT_BIT',--- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdEndQueryIndexedEXT',--- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdWriteTimestamp2',--- 'cmdEndQuery', and 'cmdWriteTimestamp' are excluded from this scope.------ The second--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>--- includes all commands which reference the queries in @queryPool@--- indicated by @query@ that occur later in--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.------ The operation of this command happens after the first scope and happens--- before the second scope.------ 'cmdCopyQueryPoolResults' is considered to be a transfer operation, and--- its writes to buffer memory /must/ be synchronized using--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFER_BIT'--- and 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_TRANSFER_WRITE_BIT'--- before using the results.------ == Valid Usage------ -   #VUID-vkCmdCopyQueryPoolResults-dstOffset-00819# @dstOffset@ /must/---     be less than the size of @dstBuffer@------ -   #VUID-vkCmdCopyQueryPoolResults-firstQuery-00820# @firstQuery@---     /must/ be less than the number of queries in @queryPool@------ -   #VUID-vkCmdCopyQueryPoolResults-firstQuery-00821# The sum of---     @firstQuery@ and @queryCount@ /must/ be less than or equal to the---     number of queries in @queryPool@------ -   #VUID-vkCmdCopyQueryPoolResults-flags-00822# If---     'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_64_BIT' is not---     set in @flags@ then @dstOffset@ and @stride@ /must/ be multiples of---     @4@------ -   #VUID-vkCmdCopyQueryPoolResults-flags-00823# If---     'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_64_BIT' is set---     in @flags@ then @dstOffset@ and @stride@ /must/ be multiples of @8@------ -   #VUID-vkCmdCopyQueryPoolResults-dstBuffer-00824# @dstBuffer@ /must/---     have enough storage, from @dstOffset@, to contain the result of each---     query, as described---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-memorylayout here>------ -   #VUID-vkCmdCopyQueryPoolResults-dstBuffer-00825# @dstBuffer@ /must/---     have been created with---     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_DST_BIT'---     usage flag------ -   #VUID-vkCmdCopyQueryPoolResults-dstBuffer-00826# If @dstBuffer@ is---     non-sparse then it /must/ be bound completely and contiguously to a---     single 'Vulkan.Core10.Handles.DeviceMemory' object------ -   #VUID-vkCmdCopyQueryPoolResults-queryType-00827# If the @queryType@---     used to create @queryPool@ was---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_TIMESTAMP', @flags@ /must/---     not contain---     'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_PARTIAL_BIT'------ -   #VUID-vkCmdCopyQueryPoolResults-queryType-03232# If the @queryType@---     used to create @queryPool@ was---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR',---     'Vulkan.Extensions.VK_KHR_performance_query.PhysicalDevicePerformanceQueryPropertiesKHR'::@allowCommandBufferQueryCopies@---     /must/ be 'Vulkan.Core10.FundamentalTypes.TRUE'------ -   #VUID-vkCmdCopyQueryPoolResults-queryType-03233# If the @queryType@---     used to create @queryPool@ was---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR',---     @flags@ /must/ not contain---     'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_WITH_AVAILABILITY_BIT',---     @VK_QUERY_RESULT_WITH_STATUS_BIT_KHR@,---     'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_PARTIAL_BIT',---     or 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_64_BIT'------ -   #VUID-vkCmdCopyQueryPoolResults-queryType-03234# If the @queryType@---     used to create @queryPool@ was---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR',---     the @queryPool@ /must/ have been submitted once for each pass as---     retrieved via a call to---     'Vulkan.Extensions.VK_KHR_performance_query.getPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR'------ -   #VUID-vkCmdCopyQueryPoolResults-queryType-02734#---     'cmdCopyQueryPoolResults' /must/ not be called if the @queryType@---     used to create @queryPool@ was---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_INTEL'------ -   #VUID-vkCmdCopyQueryPoolResults-queryType-06901# If the @queryType@---     used to create @queryPool@ was---     @VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR@, then @flags@ /must/ include---     @VK_QUERY_RESULT_WITH_STATUS_BIT_KHR@------ -   #VUID-vkCmdCopyQueryPoolResults-flags-06902# If @flags@ includes---     @VK_QUERY_RESULT_WITH_STATUS_BIT_KHR@, then it /must/ not include---     'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_WITH_AVAILABILITY_BIT'------ -   #VUID-vkCmdCopyQueryPoolResults-None-07429# All queries used by the---     command /must/ not be active------ -   #VUID-vkCmdCopyQueryPoolResults-None-08752# All queries used by the---     command /must/ have been made /available/ by prior executed commands------ == Valid Usage (Implicit)------ -   #VUID-vkCmdCopyQueryPoolResults-commandBuffer-parameter#---     @commandBuffer@ /must/ be a valid---     'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdCopyQueryPoolResults-queryPool-parameter# @queryPool@---     /must/ be a valid 'Vulkan.Core10.Handles.QueryPool' handle------ -   #VUID-vkCmdCopyQueryPoolResults-dstBuffer-parameter# @dstBuffer@---     /must/ be a valid 'Vulkan.Core10.Handles.Buffer' handle------ -   #VUID-vkCmdCopyQueryPoolResults-flags-parameter# @flags@ /must/ be a---     valid combination of---     'Vulkan.Core10.Enums.QueryResultFlagBits.QueryResultFlagBits' values------ -   #VUID-vkCmdCopyQueryPoolResults-commandBuffer-recording#---     @commandBuffer@ /must/ be in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>------ -   #VUID-vkCmdCopyQueryPoolResults-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics, or compute operations------ -   #VUID-vkCmdCopyQueryPoolResults-renderpass# This command /must/ only---     be called outside of a render pass instance------ -   #VUID-vkCmdCopyQueryPoolResults-videocoding# This command /must/---     only be called outside of a video coding scope------ -   #VUID-vkCmdCopyQueryPoolResults-commonparent# Each of---     @commandBuffer@, @dstBuffer@, and @queryPool@ /must/ have been---     created, allocated, or retrieved from the same---     'Vulkan.Core10.Handles.Device'------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |--- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+--- | Primary                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Compute                                                                                                               |                                                                                                                                        |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',--- 'Vulkan.Core10.FundamentalTypes.DeviceSize',--- 'Vulkan.Core10.Handles.QueryPool',--- 'Vulkan.Core10.Enums.QueryResultFlagBits.QueryResultFlags'-cmdCopyQueryPoolResults :: forall io-                         . (MonadIO io)-                        => -- | @commandBuffer@ is the command buffer into which this command will be-                           -- recorded.-                           CommandBuffer-                        -> -- | @queryPool@ is the query pool managing the queries containing the-                           -- desired results.-                           QueryPool-                        -> -- | @firstQuery@ is the initial query index.-                           ("firstQuery" ::: Word32)-                        -> -- | @queryCount@ is the number of queries. @firstQuery@ and @queryCount@-                           -- together define a range of queries.-                           ("queryCount" ::: Word32)-                        -> -- | @dstBuffer@ is a 'Vulkan.Core10.Handles.Buffer' object that will receive-                           -- the results of the copy command.-                           ("dstBuffer" ::: Buffer)-                        -> -- | @dstOffset@ is an offset into @dstBuffer@.-                           ("dstOffset" ::: DeviceSize)-                        -> -- | @stride@ is the stride in bytes between results for individual queries-                           -- within @dstBuffer@. The required size of the backing memory for-                           -- @dstBuffer@ is determined as described above for-                           -- 'Vulkan.Core10.Query.getQueryPoolResults'.-                           ("stride" ::: DeviceSize)-                        -> -- | @flags@ is a bitmask of-                           -- 'Vulkan.Core10.Enums.QueryResultFlagBits.QueryResultFlagBits' specifying-                           -- how and when results are returned.-                           QueryResultFlags-                        -> io ()-cmdCopyQueryPoolResults commandBuffer-                          queryPool-                          firstQuery-                          queryCount-                          dstBuffer-                          dstOffset-                          stride-                          flags = liftIO $ do-  let vkCmdCopyQueryPoolResultsPtr = pVkCmdCopyQueryPoolResults (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  unless (vkCmdCopyQueryPoolResultsPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdCopyQueryPoolResults is null" Nothing Nothing-  let vkCmdCopyQueryPoolResults' = mkVkCmdCopyQueryPoolResults vkCmdCopyQueryPoolResultsPtr-  traceAroundEvent "vkCmdCopyQueryPoolResults" (vkCmdCopyQueryPoolResults'-                                                  (commandBufferHandle (commandBuffer))-                                                  (queryPool)-                                                  (firstQuery)-                                                  (queryCount)-                                                  (dstBuffer)-                                                  (dstOffset)-                                                  (stride)-                                                  (flags))-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdPushConstants-  :: FunPtr (Ptr CommandBuffer_T -> PipelineLayout -> ShaderStageFlags -> Word32 -> Word32 -> Ptr () -> IO ()) -> Ptr CommandBuffer_T -> PipelineLayout -> ShaderStageFlags -> Word32 -> Word32 -> Ptr () -> IO ()---- | vkCmdPushConstants - Update the values of push constants------ = Description------ When a command buffer begins recording, all push constant values are--- undefined. Reads of undefined push constant values by the executing--- shader return undefined values.------ Push constant values /can/ be updated incrementally, causing shader--- stages in @stageFlags@ to read the new data from @pValues@ for push--- constants modified by this command, while still reading the previous--- data for push constants not modified by this command. When a--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-bindpoint-commands bound pipeline command>--- is issued, the bound pipeline’s layout /must/ be compatible with the--- layouts used to set the values of all push constants in the pipeline--- layout’s push constant ranges, as described in--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-compatibility Pipeline Layout Compatibility>.--- Binding a pipeline with a layout that is not compatible with the push--- constant layout does not disturb the push constant values.------ Note------ As @stageFlags@ needs to include all flags the relevant push constant--- ranges were created with, any flags that are not supported by the queue--- family that the 'Vulkan.Core10.Handles.CommandPool' used to allocate--- @commandBuffer@ was created on are ignored.------ == Valid Usage------ -   #VUID-vkCmdPushConstants-offset-01795# For each byte in the range---     specified by @offset@ and @size@ and for each shader stage in---     @stageFlags@, there /must/ be a push constant range in @layout@ that---     includes that byte and that stage------ -   #VUID-vkCmdPushConstants-offset-01796# For each byte in the range---     specified by @offset@ and @size@ and for each push constant range---     that overlaps that byte, @stageFlags@ /must/ include all stages in---     that push constant range’s---     'Vulkan.Core10.PipelineLayout.PushConstantRange'::@stageFlags@------ -   #VUID-vkCmdPushConstants-offset-00368# @offset@ /must/ be a multiple---     of @4@------ -   #VUID-vkCmdPushConstants-size-00369# @size@ /must/ be a multiple of---     @4@------ -   #VUID-vkCmdPushConstants-offset-00370# @offset@ /must/ be less than---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxPushConstantsSize@------ -   #VUID-vkCmdPushConstants-size-00371# @size@ /must/ be less than or---     equal to---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxPushConstantsSize@---     minus @offset@------ == Valid Usage (Implicit)------ -   #VUID-vkCmdPushConstants-commandBuffer-parameter# @commandBuffer@---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdPushConstants-layout-parameter# @layout@ /must/ be a---     valid 'Vulkan.Core10.Handles.PipelineLayout' handle------ -   #VUID-vkCmdPushConstants-stageFlags-parameter# @stageFlags@ /must/---     be a valid combination of---     'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlagBits' values------ -   #VUID-vkCmdPushConstants-stageFlags-requiredbitmask# @stageFlags@---     /must/ not be @0@------ -   #VUID-vkCmdPushConstants-pValues-parameter# @pValues@ /must/ be a---     valid pointer to an array of @size@ bytes------ -   #VUID-vkCmdPushConstants-commandBuffer-recording# @commandBuffer@---     /must/ be in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>------ -   #VUID-vkCmdPushConstants-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics, or compute operations------ -   #VUID-vkCmdPushConstants-videocoding# This command /must/ only be---     called outside of a video coding scope------ -   #VUID-vkCmdPushConstants-size-arraylength# @size@ /must/ be greater---     than @0@------ -   #VUID-vkCmdPushConstants-commonparent# Both of @commandBuffer@, and---     @layout@ /must/ have been created, allocated, or retrieved from the---     same 'Vulkan.Core10.Handles.Device'------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |--- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+--- | Primary                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Compute                                                                                                               |                                                                                                                                        |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.CommandBuffer',--- 'Vulkan.Core10.Handles.PipelineLayout',--- 'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlags'-cmdPushConstants :: forall io-                  . (MonadIO io)-                 => -- | @commandBuffer@ is the command buffer in which the push constant update-                    -- will be recorded.-                    CommandBuffer-                 -> -- | @layout@ is the pipeline layout used to program the push constant-                    -- updates.-                    PipelineLayout-                 -> -- | @stageFlags@ is a bitmask of-                    -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlagBits' specifying-                    -- the shader stages that will use the push constants in the updated range.-                    ShaderStageFlags-                 -> -- | @offset@ is the start offset of the push constant range to update, in-                    -- units of bytes.-                    ("offset" ::: Word32)-                 -> -- | @size@ is the size of the push constant range to update, in units of-                    -- bytes.-                    ("size" ::: Word32)-                 -> -- | @pValues@ is a pointer to an array of @size@ bytes containing the new-                    -- push constant values.-                    ("values" ::: Ptr ())-                 -> io ()-cmdPushConstants commandBuffer-                   layout-                   stageFlags-                   offset-                   size-                   values = liftIO $ do-  let vkCmdPushConstantsPtr = pVkCmdPushConstants (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  unless (vkCmdPushConstantsPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdPushConstants is null" Nothing Nothing-  let vkCmdPushConstants' = mkVkCmdPushConstants vkCmdPushConstantsPtr-  traceAroundEvent "vkCmdPushConstants" (vkCmdPushConstants'-                                           (commandBufferHandle (commandBuffer))-                                           (layout)-                                           (stageFlags)-                                           (offset)-                                           (size)-                                           (values))-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdBeginRenderPass-  :: FunPtr (Ptr CommandBuffer_T -> Ptr (SomeStruct RenderPassBeginInfo) -> SubpassContents -> IO ()) -> Ptr CommandBuffer_T -> Ptr (SomeStruct RenderPassBeginInfo) -> SubpassContents -> IO ()---- | vkCmdBeginRenderPass - Begin a new render pass------ = Description------ After beginning a render pass instance, the command buffer is ready to--- record the commands for the first subpass of that render pass.------ == Valid Usage------ -   #VUID-vkCmdBeginRenderPass-initialLayout-00895# If any of the---     @initialLayout@ or @finalLayout@ member of the---     'Vulkan.Core10.Pass.AttachmentDescription' structures or the---     @layout@ member of the 'Vulkan.Core10.Pass.AttachmentReference'---     structures specified when creating the render pass specified in the---     @renderPass@ member of @pRenderPassBegin@ is---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL'---     then the corresponding attachment image view of the framebuffer---     specified in the @framebuffer@ member of @pRenderPassBegin@ /must/---     have been created with a @usage@ value including---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_COLOR_ATTACHMENT_BIT'------ -   #VUID-vkCmdBeginRenderPass-initialLayout-01758# If any of the---     @initialLayout@ or @finalLayout@ member of the---     'Vulkan.Core10.Pass.AttachmentDescription' structures or the---     @layout@ member of the 'Vulkan.Core10.Pass.AttachmentReference'---     structures specified when creating the render pass specified in the---     @renderPass@ member of @pRenderPassBegin@ is---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL',---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL',---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL',---     or---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL'---     then the corresponding attachment image view of the framebuffer---     specified in the @framebuffer@ member of @pRenderPassBegin@ /must/---     have been created with a @usage@ value including---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT'------ -   #VUID-vkCmdBeginRenderPass-initialLayout-02842# If any of the---     @initialLayout@ or @finalLayout@ member of the---     'Vulkan.Core10.Pass.AttachmentDescription' structures or the---     @layout@ member of the 'Vulkan.Core10.Pass.AttachmentReference'---     structures specified when creating the render pass specified in the---     @renderPass@ member of @pRenderPassBegin@ is---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL',---     or---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL',---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL',---     or---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL'---     then the corresponding attachment image view of the framebuffer---     specified in the @framebuffer@ member of @pRenderPassBegin@ /must/---     have been created with a @usage@ value including---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT'------ -   #VUID-vkCmdBeginRenderPass-stencilInitialLayout-02843# If any of the---     @stencilInitialLayout@ or @stencilFinalLayout@ member of the---     'Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts.AttachmentDescriptionStencilLayout'---     structures or the @stencilLayout@ member of the---     'Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts.AttachmentReferenceStencilLayout'---     structures specified when creating the render pass specified in the---     @renderPass@ member of @pRenderPassBegin@ is---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL',---     or---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL'---     then the corresponding attachment image view of the framebuffer---     specified in the @framebuffer@ member of @pRenderPassBegin@ /must/---     have been created with a @usage@ value including---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT'------ -   #VUID-vkCmdBeginRenderPass-initialLayout-00897# If any of the---     @initialLayout@ or @finalLayout@ member of the---     'Vulkan.Core10.Pass.AttachmentDescription' structures or the---     @layout@ member of the 'Vulkan.Core10.Pass.AttachmentReference'---     structures specified when creating the render pass specified in the---     @renderPass@ member of @pRenderPassBegin@ is---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL'---     then the corresponding attachment image view of the framebuffer---     specified in the @framebuffer@ member of @pRenderPassBegin@ /must/---     have been created with a @usage@ value including---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SAMPLED_BIT' or---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_INPUT_ATTACHMENT_BIT'------ -   #VUID-vkCmdBeginRenderPass-initialLayout-00898# If any of the---     @initialLayout@ or @finalLayout@ member of the---     'Vulkan.Core10.Pass.AttachmentDescription' structures or the---     @layout@ member of the 'Vulkan.Core10.Pass.AttachmentReference'---     structures specified when creating the render pass specified in the---     @renderPass@ member of @pRenderPassBegin@ is---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL'---     then the corresponding attachment image view of the framebuffer---     specified in the @framebuffer@ member of @pRenderPassBegin@ /must/---     have been created with a @usage@ value including---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_SRC_BIT'------ -   #VUID-vkCmdBeginRenderPass-initialLayout-00899# If any of the---     @initialLayout@ or @finalLayout@ member of the---     'Vulkan.Core10.Pass.AttachmentDescription' structures or the---     @layout@ member of the 'Vulkan.Core10.Pass.AttachmentReference'---     structures specified when creating the render pass specified in the---     @renderPass@ member of @pRenderPassBegin@ is---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL'---     then the corresponding attachment image view of the framebuffer---     specified in the @framebuffer@ member of @pRenderPassBegin@ /must/---     have been created with a @usage@ value including---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'------ -   #VUID-vkCmdBeginRenderPass-initialLayout-00900# If the---     @initialLayout@ member of any of the---     'Vulkan.Core10.Pass.AttachmentDescription' structures specified when---     creating the render pass specified in the @renderPass@ member of---     @pRenderPassBegin@ is not---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_UNDEFINED', then each---     such @initialLayout@ /must/ be equal to the current layout of the---     corresponding attachment image subresource of the framebuffer---     specified in the @framebuffer@ member of @pRenderPassBegin@------ -   #VUID-vkCmdBeginRenderPass-srcStageMask-06451# The @srcStageMask@---     members of any element of the @pDependencies@ member of---     'Vulkan.Core10.Pass.RenderPassCreateInfo' used to create---     @renderPass@ /must/ be supported by the capabilities of the queue---     family identified by the @queueFamilyIndex@ member of the---     'Vulkan.Core10.CommandPool.CommandPoolCreateInfo' used to create the---     command pool which @commandBuffer@ was allocated from------ -   #VUID-vkCmdBeginRenderPass-dstStageMask-06452# The @dstStageMask@---     members of any element of the @pDependencies@ member of---     'Vulkan.Core10.Pass.RenderPassCreateInfo' used to create---     @renderPass@ /must/ be supported by the capabilities of the queue---     family identified by the @queueFamilyIndex@ member of the---     'Vulkan.Core10.CommandPool.CommandPoolCreateInfo' used to create the---     command pool which @commandBuffer@ was allocated from------ -   #VUID-vkCmdBeginRenderPass-framebuffer-02532# For any attachment in---     @framebuffer@ that is used by @renderPass@ and is bound to memory---     locations that are also bound to another attachment used by---     @renderPass@, and if at least one of those uses causes either---     attachment to be written to, both attachments /must/ have had the---     'Vulkan.Core10.Enums.AttachmentDescriptionFlagBits.ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT'---     set------ -   #VUID-vkCmdBeginRenderPass-framebuffer-09045# If any attachments---     specified in @framebuffer@ are used by @renderPass@ and are bound to---     overlapping memory locations, there /must/ be only one that is used---     as a color attachment, depth\/stencil, or resolve attachment in any---     subpass------ -   #VUID-vkCmdBeginRenderPass-initialLayout-07000# If any of the---     @initialLayout@ or @finalLayout@ member of the---     'Vulkan.Core10.Pass.AttachmentDescription' structures or the---     @layout@ member of the 'Vulkan.Core10.Pass.AttachmentReference'---     structures specified when creating the render pass specified in the---     @renderPass@ member of @pRenderPassBegin@ is---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'---     then the corresponding attachment image view of the framebuffer---     specified in the @framebuffer@ member of @pRenderPassBegin@ /must/---     have been created with a @usage@ value including either the---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_COLOR_ATTACHMENT_BIT'---     or---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT'---     and either the---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_INPUT_ATTACHMENT_BIT'---     or 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SAMPLED_BIT'---     usage bits------ -   #VUID-vkCmdBeginRenderPass-initialLayout-07001# If any of the---     @initialLayout@ or @finalLayout@ member of the---     'Vulkan.Core10.Pass.AttachmentDescription' structures or the---     @layout@ member of the 'Vulkan.Core10.Pass.AttachmentReference'---     structures specified when creating the render pass specified in the---     @renderPass@ member of @pRenderPassBegin@ is---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'---     then the corresponding attachment image view of the framebuffer---     specified in the @framebuffer@ member of @pRenderPassBegin@ /must/---     have been created with a @usage@ value the---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'---     usage bit------ == Valid Usage (Implicit)------ -   #VUID-vkCmdBeginRenderPass-commandBuffer-parameter# @commandBuffer@---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdBeginRenderPass-pRenderPassBegin-parameter#---     @pRenderPassBegin@ /must/ be a valid pointer to a valid---     'RenderPassBeginInfo' structure------ -   #VUID-vkCmdBeginRenderPass-contents-parameter# @contents@ /must/ be---     a valid 'Vulkan.Core10.Enums.SubpassContents.SubpassContents' value------ -   #VUID-vkCmdBeginRenderPass-commandBuffer-recording# @commandBuffer@---     /must/ be in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>------ -   #VUID-vkCmdBeginRenderPass-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics operations------ -   #VUID-vkCmdBeginRenderPass-renderpass# This command /must/ only be---     called outside of a render pass instance------ -   #VUID-vkCmdBeginRenderPass-videocoding# This command /must/ only be---     called outside of a video coding scope------ -   #VUID-vkCmdBeginRenderPass-bufferlevel# @commandBuffer@ /must/ be a---     primary 'Vulkan.Core10.Handles.CommandBuffer'------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |--- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+--- | Primary                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |--- |                                                                                                                            |                                                                                                                        |                                                                                                                             |                                                                                                                       | State                                                                                                                                  |--- |                                                                                                                            |                                                                                                                        |                                                                                                                             |                                                                                                                       | Synchronization                                                                                                                        |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.CommandBuffer', 'RenderPassBeginInfo',--- 'Vulkan.Core10.Enums.SubpassContents.SubpassContents'-cmdBeginRenderPass :: forall a io-                    . (Extendss RenderPassBeginInfo a, PokeChain a, MonadIO io)-                   => -- | @commandBuffer@ is the command buffer in which to record the command.-                      CommandBuffer-                   -> -- | @pRenderPassBegin@ is a pointer to a 'RenderPassBeginInfo' structure-                      -- specifying the render pass to begin an instance of, and the framebuffer-                      -- the instance uses.-                      (RenderPassBeginInfo a)-                   -> -- | @contents@ is a 'Vulkan.Core10.Enums.SubpassContents.SubpassContents'-                      -- value specifying how the commands in the first subpass will be provided.-                      SubpassContents-                   -> io ()-cmdBeginRenderPass commandBuffer-                     renderPassBegin-                     contents = liftIO . evalContT $ do-  let vkCmdBeginRenderPassPtr = pVkCmdBeginRenderPass (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  lift $ unless (vkCmdBeginRenderPassPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBeginRenderPass is null" Nothing Nothing-  let vkCmdBeginRenderPass' = mkVkCmdBeginRenderPass vkCmdBeginRenderPassPtr-  pRenderPassBegin <- ContT $ withCStruct (renderPassBegin)-  lift $ traceAroundEvent "vkCmdBeginRenderPass" (vkCmdBeginRenderPass'-                                                    (commandBufferHandle (commandBuffer))-                                                    (forgetExtensions pRenderPassBegin)-                                                    (contents))-  pure $ ()---- | This function will call the supplied action between calls to--- 'cmdBeginRenderPass' and 'cmdEndRenderPass'------ Note that 'cmdEndRenderPass' is *not* called if an exception is thrown--- by the inner action.-cmdUseRenderPass :: forall a io r . (Extendss RenderPassBeginInfo a, PokeChain a, MonadIO io) => CommandBuffer -> RenderPassBeginInfo a -> SubpassContents -> io r -> io r-cmdUseRenderPass commandBuffer pRenderPassBegin contents a =-  (cmdBeginRenderPass commandBuffer-                        pRenderPassBegin-                        contents) *> a <* (cmdEndRenderPass commandBuffer)---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdNextSubpass-  :: FunPtr (Ptr CommandBuffer_T -> SubpassContents -> IO ()) -> Ptr CommandBuffer_T -> SubpassContents -> IO ()---- | vkCmdNextSubpass - Transition to the next subpass of a render pass------ = Description------ The subpass index for a render pass begins at zero when--- 'cmdBeginRenderPass' is recorded, and increments each time--- 'cmdNextSubpass' is recorded.------ After transitioning to the next subpass, the application /can/ record--- the commands for that subpass.------ == Valid Usage------ -   #VUID-vkCmdNextSubpass-None-00909# The current subpass index /must/---     be less than the number of subpasses in the render pass minus one------ -   #VUID-vkCmdNextSubpass-None-02349# This command /must/ not be---     recorded when transform feedback is active------ == Valid Usage (Implicit)------ -   #VUID-vkCmdNextSubpass-commandBuffer-parameter# @commandBuffer@---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdNextSubpass-contents-parameter# @contents@ /must/ be a---     valid 'Vulkan.Core10.Enums.SubpassContents.SubpassContents' value------ -   #VUID-vkCmdNextSubpass-commandBuffer-recording# @commandBuffer@---     /must/ be in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>------ -   #VUID-vkCmdNextSubpass-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics operations------ -   #VUID-vkCmdNextSubpass-renderpass# This command /must/ only be---     called inside of a render pass instance------ -   #VUID-vkCmdNextSubpass-videocoding# This command /must/ only be---     called outside of a video coding scope------ -   #VUID-vkCmdNextSubpass-bufferlevel# @commandBuffer@ /must/ be a---     primary 'Vulkan.Core10.Handles.CommandBuffer'------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |--- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+--- | Primary                                                                                                                    | Inside                                                                                                                 | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |--- |                                                                                                                            |                                                                                                                        |                                                                                                                             |                                                                                                                       | State                                                                                                                                  |--- |                                                                                                                            |                                                                                                                        |                                                                                                                             |                                                                                                                       | Synchronization                                                                                                                        |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.CommandBuffer',--- 'Vulkan.Core10.Enums.SubpassContents.SubpassContents'-cmdNextSubpass :: forall io-                . (MonadIO io)-               => -- | @commandBuffer@ is the command buffer in which to record the command.-                  CommandBuffer-               -> -- | @contents@ specifies how the commands in the next subpass will be-                  -- provided, in the same fashion as the corresponding parameter of-                  -- 'cmdBeginRenderPass'.-                  SubpassContents-               -> io ()-cmdNextSubpass commandBuffer contents = liftIO $ do-  let vkCmdNextSubpassPtr = pVkCmdNextSubpass (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  unless (vkCmdNextSubpassPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdNextSubpass is null" Nothing Nothing-  let vkCmdNextSubpass' = mkVkCmdNextSubpass vkCmdNextSubpassPtr-  traceAroundEvent "vkCmdNextSubpass" (vkCmdNextSubpass'-                                         (commandBufferHandle (commandBuffer))-                                         (contents))-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdEndRenderPass-  :: FunPtr (Ptr CommandBuffer_T -> IO ()) -> Ptr CommandBuffer_T -> IO ()---- | vkCmdEndRenderPass - End the current render pass------ = Description------ Ending a render pass instance performs any multisample resolve--- operations on the final subpass.------ == Valid Usage------ -   #VUID-vkCmdEndRenderPass-None-00910# The current subpass index---     /must/ be equal to the number of subpasses in the render pass minus---     one------ -   #VUID-vkCmdEndRenderPass-None-02351# This command /must/ not be---     recorded when transform feedback is active------ -   #VUID-vkCmdEndRenderPass-None-06170# The current render pass---     instance /must/ not have been begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'------ -   #VUID-vkCmdEndRenderPass-None-07004# If 'cmdBeginQuery'* was called---     within a subpass of the render pass, the corresponding---     'cmdEndQuery'* /must/ have been called subsequently within the same---     subpass------ == Valid Usage (Implicit)------ -   #VUID-vkCmdEndRenderPass-commandBuffer-parameter# @commandBuffer@---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdEndRenderPass-commandBuffer-recording# @commandBuffer@---     /must/ be in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>------ -   #VUID-vkCmdEndRenderPass-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics operations------ -   #VUID-vkCmdEndRenderPass-renderpass# This command /must/ only be---     called inside of a render pass instance------ -   #VUID-vkCmdEndRenderPass-videocoding# This command /must/ only be---     called outside of a video coding scope------ -   #VUID-vkCmdEndRenderPass-bufferlevel# @commandBuffer@ /must/ be a---     primary 'Vulkan.Core10.Handles.CommandBuffer'------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |--- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+--- | Primary                                                                                                                    | Inside                                                                                                                 | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |--- |                                                                                                                            |                                                                                                                        |                                                                                                                             |                                                                                                                       | State                                                                                                                                  |--- |                                                                                                                            |                                                                                                                        |                                                                                                                             |                                                                                                                       | Synchronization                                                                                                                        |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.CommandBuffer'-cmdEndRenderPass :: forall io-                  . (MonadIO io)-                 => -- | @commandBuffer@ is the command buffer in which to end the current render-                    -- pass instance.-                    CommandBuffer-                 -> io ()-cmdEndRenderPass commandBuffer = liftIO $ do-  let vkCmdEndRenderPassPtr = pVkCmdEndRenderPass (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  unless (vkCmdEndRenderPassPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdEndRenderPass is null" Nothing Nothing-  let vkCmdEndRenderPass' = mkVkCmdEndRenderPass vkCmdEndRenderPassPtr-  traceAroundEvent "vkCmdEndRenderPass" (vkCmdEndRenderPass'-                                           (commandBufferHandle (commandBuffer)))-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdExecuteCommands-  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Ptr (Ptr CommandBuffer_T) -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Ptr (Ptr CommandBuffer_T) -> IO ()---- | vkCmdExecuteCommands - Execute a secondary command buffer from a primary--- command buffer------ = Description------ If any element of @pCommandBuffers@ was not recorded with the--- 'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT'--- flag, and it was recorded into any other primary command buffer which is--- currently in the--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle executable or recording state>,--- that primary command buffer becomes--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle invalid>.------ If the--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-nestedCommandBuffer nestedCommandBuffer>--- feature is enabled it is valid usage for 'cmdExecuteCommands' to also be--- recorded to a--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#glossary secondary command buffer>.------ == Valid Usage------ -   #VUID-vkCmdExecuteCommands-pCommandBuffers-00088# Each element of---     @pCommandBuffers@ /must/ have been allocated with a @level@ of---     'Vulkan.Core10.Enums.CommandBufferLevel.COMMAND_BUFFER_LEVEL_SECONDARY'------ -   #VUID-vkCmdExecuteCommands-pCommandBuffers-00089# Each element of---     @pCommandBuffers@ /must/ be in the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle pending or executable state>------ -   #VUID-vkCmdExecuteCommands-pCommandBuffers-00091# If any element of---     @pCommandBuffers@ was not recorded with the---     'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT'---     flag, it /must/ not be in the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle pending state>------ -   #VUID-vkCmdExecuteCommands-pCommandBuffers-00092# If any element of---     @pCommandBuffers@ was not recorded with the---     'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT'---     flag, it /must/ not have already been recorded to @commandBuffer@------ -   #VUID-vkCmdExecuteCommands-pCommandBuffers-00093# If any element of---     @pCommandBuffers@ was not recorded with the---     'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT'---     flag, it /must/ not appear more than once in @pCommandBuffers@------ -   #VUID-vkCmdExecuteCommands-pCommandBuffers-00094# Each element of---     @pCommandBuffers@ /must/ have been allocated from a---     'Vulkan.Core10.Handles.CommandPool' that was created for the same---     queue family as the 'Vulkan.Core10.Handles.CommandPool' from which---     @commandBuffer@ was allocated------ -   #VUID-vkCmdExecuteCommands-pCommandBuffers-00096# If---     'cmdExecuteCommands' is being called within a render pass instance,---     each element of @pCommandBuffers@ /must/ have been recorded with the---     'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT'------ -   #VUID-vkCmdExecuteCommands-pCommandBuffers-00099# If---     'cmdExecuteCommands' is being called within a render pass instance,---     and any element of @pCommandBuffers@ was recorded with---     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo'::@framebuffer@---     not equal to 'Vulkan.Core10.APIConstants.NULL_HANDLE', that---     'Vulkan.Core10.Handles.Framebuffer' /must/ match the---     'Vulkan.Core10.Handles.Framebuffer' used in the current render pass---     instance------ -   #VUID-vkCmdExecuteCommands-contents-06018# If 'cmdExecuteCommands'---     is being called within a render pass instance begun with---     'cmdBeginRenderPass', its @contents@ parameter /must/ have been set---     to---     'Vulkan.Core10.Enums.SubpassContents.SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS'---     , or---     'Vulkan.Core10.Enums.SubpassContents.SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT'------ -   #VUID-vkCmdExecuteCommands-pCommandBuffers-06019# If---     'cmdExecuteCommands' is being called within a render pass instance---     begun with 'cmdBeginRenderPass', each element of @pCommandBuffers@---     /must/ have been recorded with---     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo'::@subpass@---     set to the index of the subpass which the given command buffer will---     be executed in------ -   #VUID-vkCmdExecuteCommands-pBeginInfo-06020# If 'cmdExecuteCommands'---     is being called within a render pass instance begun with---     'cmdBeginRenderPass', the render passes specified in the---     @pBeginInfo->pInheritanceInfo->renderPass@ members of the---     'Vulkan.Core10.CommandBuffer.beginCommandBuffer' commands used to---     begin recording each element of @pCommandBuffers@ /must/ be---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-compatibility compatible>---     with the current render pass------ -   #VUID-vkCmdExecuteCommands-pNext-02865# If 'cmdExecuteCommands' is---     being called within a render pass instance that included---     'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM'---     in the @pNext@ chain of 'RenderPassBeginInfo', then each element of---     @pCommandBuffers@ /must/ have been recorded with---     'Vulkan.Extensions.VK_QCOM_render_pass_transform.CommandBufferInheritanceRenderPassTransformInfoQCOM'---     in the @pNext@ chain of---     'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'------ -   #VUID-vkCmdExecuteCommands-pNext-02866# If 'cmdExecuteCommands' is---     being called within a render pass instance that included---     'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM'---     in the @pNext@ chain of 'RenderPassBeginInfo', then each element of---     @pCommandBuffers@ /must/ have been recorded with---     'Vulkan.Extensions.VK_QCOM_render_pass_transform.CommandBufferInheritanceRenderPassTransformInfoQCOM'::@transform@---     identical to---     'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM'::@transform@------ -   #VUID-vkCmdExecuteCommands-pNext-02867# If 'cmdExecuteCommands' is---     being called within a render pass instance that included---     'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM'---     in the @pNext@ chain of 'RenderPassBeginInfo', then each element of---     @pCommandBuffers@ /must/ have been recorded with---     'Vulkan.Extensions.VK_QCOM_render_pass_transform.CommandBufferInheritanceRenderPassTransformInfoQCOM'::@renderArea@---     identical to 'RenderPassBeginInfo'::@renderArea@------ -   #VUID-vkCmdExecuteCommands-pCommandBuffers-00100# If---     'cmdExecuteCommands' is not being called within a render pass---     instance, each element of @pCommandBuffers@ /must/ not have been---     recorded with the---     'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT'------ -   #VUID-vkCmdExecuteCommands-commandBuffer-00101# If the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-inheritedQueries inheritedQueries>---     feature is not enabled, @commandBuffer@ /must/ not have any queries---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-active active>------ -   #VUID-vkCmdExecuteCommands-commandBuffer-00102# If @commandBuffer@---     has a 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_OCCLUSION' query---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-active active>,---     then each element of @pCommandBuffers@ /must/ have been recorded---     with---     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo'::@occlusionQueryEnable@---     set to 'Vulkan.Core10.FundamentalTypes.TRUE'------ -   #VUID-vkCmdExecuteCommands-commandBuffer-00103# If @commandBuffer@---     has a 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_OCCLUSION' query---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-active active>,---     then each element of @pCommandBuffers@ /must/ have been recorded---     with---     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo'::@queryFlags@---     having all bits set that are set for the query------ -   #VUID-vkCmdExecuteCommands-commandBuffer-00104# If @commandBuffer@---     has a 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PIPELINE_STATISTICS'---     query---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-active active>,---     then each element of @pCommandBuffers@ /must/ have been recorded---     with---     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo'::@pipelineStatistics@---     having all bits set that are set in the---     'Vulkan.Core10.Handles.QueryPool' the query uses------ -   #VUID-vkCmdExecuteCommands-pCommandBuffers-00105# Each element of---     @pCommandBuffers@ /must/ not begin any query types that are---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-active active>---     in @commandBuffer@------ -   #VUID-vkCmdExecuteCommands-commandBuffer-07594# @commandBuffer@---     /must/ not have any queries other than---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_OCCLUSION' and---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PIPELINE_STATISTICS'---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-active active>------ -   #VUID-vkCmdExecuteCommands-commandBuffer-01820# If @commandBuffer@---     is a protected command buffer and---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, each element of @pCommandBuffers@ /must/ be a---     protected command buffer------ -   #VUID-vkCmdExecuteCommands-commandBuffer-01821# If @commandBuffer@---     is an unprotected command buffer and---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>---     is not supported, each element of @pCommandBuffers@ /must/ be an---     unprotected command buffer------ -   #VUID-vkCmdExecuteCommands-None-02286# This command /must/ not be---     recorded when transform feedback is active------ -   #VUID-vkCmdExecuteCommands-commandBuffer-06533# If---     'cmdExecuteCommands' is being called within a render pass instance---     and any recorded command in @commandBuffer@ in the current subpass---     will write to an image subresource as an attachment, commands---     recorded in elements of @pCommandBuffers@ /must/ not read from the---     memory backing that image subresource in any other way------ -   #VUID-vkCmdExecuteCommands-commandBuffer-06534# If---     'cmdExecuteCommands' is being called within a render pass instance---     and any recorded command in @commandBuffer@ in the current subpass---     will read from an image subresource used as an attachment in any way---     other than as an attachment, commands recorded in elements of---     @pCommandBuffers@ /must/ not write to that image subresource as an---     attachment------ -   #VUID-vkCmdExecuteCommands-pCommandBuffers-06535# If---     'cmdExecuteCommands' is being called within a render pass instance---     and any recorded command in a given element of @pCommandBuffers@---     will write to an image subresource as an attachment, commands---     recorded in elements of @pCommandBuffers@ at a higher index /must/---     not read from the memory backing that image subresource in any other---     way------ -   #VUID-vkCmdExecuteCommands-pCommandBuffers-06536# If---     'cmdExecuteCommands' is being called within a render pass instance---     and any recorded command in a given element of @pCommandBuffers@---     will read from an image subresource used as an attachment in any way---     other than as an attachment, commands recorded in elements of---     @pCommandBuffers@ at a higher index /must/ not write to that image---     subresource as an attachment------ -   #VUID-vkCmdExecuteCommands-pCommandBuffers-06021# If---     @pCommandBuffers@ contains any---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-suspension suspended render pass instances>,---     there /must/ be no action or synchronization commands between that---     render pass instance and any render pass instance that resumes it------ -   #VUID-vkCmdExecuteCommands-pCommandBuffers-06022# If---     @pCommandBuffers@ contains any---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-suspension suspended render pass instances>,---     there /must/ be no render pass instances between that render pass---     instance and any render pass instance that resumes it------ -   #VUID-vkCmdExecuteCommands-variableSampleLocations-06023# If the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-variableSampleLocations variableSampleLocations>---     limit is not supported, and any element of @pCommandBuffers@---     contains any---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-suspension suspended render pass instances>,---     where a graphics pipeline has been bound, any pipelines bound in the---     render pass instance that resumes it, or any subsequent render pass---     instances that resume from that one and so on, /must/ use the same---     sample locations------ -   #VUID-vkCmdExecuteCommands-flags-06024# If 'cmdExecuteCommands' is---     being called within a render pass instance begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     its---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@flags@---     parameter /must/ have included---     'Vulkan.Core13.Enums.RenderingFlagBits.RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT'------ -   #VUID-vkCmdExecuteCommands-pBeginInfo-06025# If 'cmdExecuteCommands'---     is being called within a render pass instance begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     the render passes specified in the---     @pBeginInfo->pInheritanceInfo->renderPass@ members of the---     'Vulkan.Core10.CommandBuffer.beginCommandBuffer' commands used to---     begin recording each element of @pCommandBuffers@ /must/ be---     'Vulkan.Core10.APIConstants.NULL_HANDLE'------ -   #VUID-vkCmdExecuteCommands-flags-06026# If 'cmdExecuteCommands' is---     being called within a render pass instance begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     the @flags@ member of the---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'---     structure included in the @pNext@ chain of---     'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@pInheritanceInfo@---     used to begin recording each element of @pCommandBuffers@ /must/ be---     equal to the---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@flags@---     parameter to---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     excluding---     'Vulkan.Core13.Enums.RenderingFlagBits.RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT'------ -   #VUID-vkCmdExecuteCommands-colorAttachmentCount-06027# If---     'cmdExecuteCommands' is being called within a render pass instance---     begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     the @colorAttachmentCount@ member of the---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'---     structure included in the @pNext@ chain of---     'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@pInheritanceInfo@---     used to begin recording each element of @pCommandBuffers@ /must/ be---     equal to the---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@---     parameter to---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'------ -   #VUID-vkCmdExecuteCommands-imageView-06028# If 'cmdExecuteCommands'---     is being called within a render pass instance begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     if the @imageView@ member of an element of the---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@---     parameter to---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'---     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the corresponding---     element of the @pColorAttachmentFormats@ member of the---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'---     structure included in the @pNext@ chain of---     'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@pInheritanceInfo@---     used to begin recording each element of @pCommandBuffers@ /must/ be---     equal to the format used to create that image view------ -   #VUID-vkCmdExecuteCommands-imageView-07606# If 'cmdExecuteCommands'---     is being called within a render pass instance begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     if the @imageView@ member of an element of the---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@---     parameter to---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'---     is 'Vulkan.Core10.APIConstants.NULL_HANDLE', the corresponding---     element of the @pColorAttachmentFormats@ member of the---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'---     structure included in the @pNext@ chain of---     'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@pInheritanceInfo@---     used to begin recording each element of @pCommandBuffers@ /must/ be---     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'------ -   #VUID-vkCmdExecuteCommands-pDepthAttachment-06029# If---     'cmdExecuteCommands' is being called within a render pass instance---     begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     if the---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@---     parameter to---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'---     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the---     @depthAttachmentFormat@ member of the---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'---     structure included in the @pNext@ chain of---     'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@pInheritanceInfo@---     used to begin recording each element of @pCommandBuffers@ /must/ be---     equal to the format used to create that image view------ -   #VUID-vkCmdExecuteCommands-pStencilAttachment-06030# If---     'cmdExecuteCommands' is being called within a render pass instance---     begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     if the---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@---     parameter to---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'---     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the---     @stencilAttachmentFormat@ member of the---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'---     structure included in the @pNext@ chain of---     'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@pInheritanceInfo@---     used to begin recording each element of @pCommandBuffers@ /must/ be---     equal to the format used to create that image view------ -   #VUID-vkCmdExecuteCommands-pDepthAttachment-06774# If---     'cmdExecuteCommands' is being called within a render pass instance---     begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'---     and the---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@---     parameter to---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'---     was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the---     @depthAttachmentFormat@ member of the---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'---     structure included in the @pNext@ chain of---     'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@pInheritanceInfo@---     used to begin recording each element of @pCommandBuffers@ /must/ be---     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'------ -   #VUID-vkCmdExecuteCommands-pStencilAttachment-06775# If---     'cmdExecuteCommands' is being called within a render pass instance---     begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'---     and the---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@---     parameter to---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'---     was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the---     @stencilAttachmentFormat@ member of the---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'---     structure included in the @pNext@ chain of---     'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@pInheritanceInfo@---     used to begin recording each element of @pCommandBuffers@ /must/ be---     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'------ -   #VUID-vkCmdExecuteCommands-viewMask-06031# If 'cmdExecuteCommands'---     is being called within a render pass instance begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     the @viewMask@ member of the---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'---     structure included in the @pNext@ chain of---     'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@pInheritanceInfo@---     used to begin recording each element of @pCommandBuffers@ /must/ be---     equal to the---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@viewMask@---     parameter to---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'------ -   #VUID-vkCmdExecuteCommands-pNext-06032# If 'cmdExecuteCommands' is---     being called within a render pass instance begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'---     and the @pNext@ chain of---     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo' includes---     a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     structure, if the @imageView@ member of an element of the---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@---     parameter to---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'---     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the corresponding---     element of the @pColorAttachmentSamples@ member of the---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     structure included in the @pNext@ chain of---     'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@pInheritanceInfo@---     used to begin recording each element of @pCommandBuffers@ /must/ be---     equal to the sample count used to create that image view------ -   #VUID-vkCmdExecuteCommands-pNext-06033# If 'cmdExecuteCommands' is---     being called within a render pass instance begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'---     and the @pNext@ chain of---     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo' includes---     a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     structure, if the---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@---     parameter to---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'---     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the---     @depthStencilAttachmentSamples@ member of the---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     structure included in the @pNext@ chain of---     'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@pInheritanceInfo@---     used to begin recording each element of @pCommandBuffers@ /must/ be---     equal to the sample count used to create that image view------ -   #VUID-vkCmdExecuteCommands-pNext-06034# If 'cmdExecuteCommands' is---     being called within a render pass instance begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'---     and the @pNext@ chain of---     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo' includes---     a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     structure, if the---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@---     parameter to---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'---     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the---     @depthStencilAttachmentSamples@ member of the---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     structure included in the @pNext@ chain of---     'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@pInheritanceInfo@---     used to begin recording each element of @pCommandBuffers@ /must/ be---     equal to the sample count used to create that image view------ -   #VUID-vkCmdExecuteCommands-pNext-06035# If 'cmdExecuteCommands' is---     being called within a render pass instance begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'---     and the @pNext@ chain of---     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo' does not---     include a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     structure, if the @imageView@ member of an element of the---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@---     parameter to---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'---     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'::@rasterizationSamples@---     /must/ be equal to the sample count used to create that image view------ -   #VUID-vkCmdExecuteCommands-pNext-06036# If 'cmdExecuteCommands' is---     being called within a render pass instance begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'---     and the @pNext@ chain of---     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo' does not---     include a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     structure, if the---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@---     parameter to---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'---     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'::@rasterizationSamples@---     /must/ be equal to the sample count used to create that image view------ -   #VUID-vkCmdExecuteCommands-pNext-06037# If 'cmdExecuteCommands' is---     being called within a render pass instance begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'---     and the @pNext@ chain of---     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo' does not---     include a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     structure, if the---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@---     parameter to---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'---     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'::@rasterizationSamples@---     /must/ be equal to the sample count used to create that image view------ -   #VUID-vkCmdExecuteCommands-pNext-09299# If 'cmdExecuteCommands' is---     being called within a render pass instance begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',---     with any color attachment using a resolve mode of---     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',---     the @pNext@ chain of---     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo' used to---     create each element of @pCommandBuffers@ /must/ include a---     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'---     structure with a @externalFormat@ matching that used to create the---     resolve attachment in the render pass------ -   #VUID-vkCmdExecuteCommands-pNext-09300# If 'cmdExecuteCommands' is---     being called within a render pass instance begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'---     with any color attachment using a resolve mode of---     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',---     and the @pNext@ chain of---     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo' does not---     include a---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'---     or---     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'---     structure, the value of---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'::@rasterizationSamples@---     /must/ be---     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'------ -   #VUID-vkCmdExecuteCommands-commandBuffer-09375# @commandBuffer@---     /must/ not be a---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#glossary secondary command buffer>---     unless the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-nestedCommandBuffer nestedCommandBuffer>---     feature is enabled------ -   #VUID-vkCmdExecuteCommands-nestedCommandBuffer-09376# If the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-nestedCommandBuffer nestedCommandBuffer>---     feature is enabled, the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#glossary command buffer nesting level>---     of each element of @pCommandBuffers@ /must/ be less than---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxCommandBufferNestingLevel maxCommandBufferNestingLevel>------ -   #VUID-vkCmdExecuteCommands-nestedCommandBufferRendering-09377# If---     the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-nestedCommandBufferRendering nestedCommandBufferRendering>---     feature is not enabled, and @commandBuffer@ is a---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#glossary secondary command buffer>,---     @commandBuffer@ /must/ not have been recorded with---     'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT'------ -   #VUID-vkCmdExecuteCommands-nestedCommandBufferSimultaneousUse-09378#---     If the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-nestedCommandBufferSimultaneousUse nestedCommandBufferSimultaneousUse>---     feature is not enabled, and @commandBuffer@ is a---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#glossary secondary command buffer>,---     each element of @pCommandBuffers@ /must/ not have been recorded with---     'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT'------ == Valid Usage (Implicit)------ -   #VUID-vkCmdExecuteCommands-commandBuffer-parameter# @commandBuffer@---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdExecuteCommands-pCommandBuffers-parameter#---     @pCommandBuffers@ /must/ be a valid pointer to an array of---     @commandBufferCount@ valid 'Vulkan.Core10.Handles.CommandBuffer'---     handles------ -   #VUID-vkCmdExecuteCommands-commandBuffer-recording# @commandBuffer@---     /must/ be in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>------ -   #VUID-vkCmdExecuteCommands-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support transfer, graphics, or compute---     operations------ -   #VUID-vkCmdExecuteCommands-videocoding# This command /must/ only be---     called outside of a video coding scope------ -   #VUID-vkCmdExecuteCommands-commandBufferCount-arraylength#---     @commandBufferCount@ /must/ be greater than @0@------ -   #VUID-vkCmdExecuteCommands-commonparent# Both of @commandBuffer@,---     and the elements of @pCommandBuffers@ /must/ have been created,---     allocated, or retrieved from the same 'Vulkan.Core10.Handles.Device'------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |--- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+--- | Primary                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Transfer                                                                                                              | Indirection                                                                                                                            |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Graphics                                                                                                              |                                                                                                                                        |--- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Compute                                                                                                               |                                                                                                                                        |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.Handles.CommandBuffer'-cmdExecuteCommands :: forall io-                    . (MonadIO io)-                   => -- | @commandBuffer@ is a handle to a primary command buffer that the-                      -- secondary command buffers are executed in.-                      CommandBuffer-                   -> -- | @pCommandBuffers@ is a pointer to an array of @commandBufferCount@-                      -- secondary command buffer handles, which are recorded to execute in the-                      -- primary command buffer in the order they are listed in the array.-                      ("commandBuffers" ::: Vector CommandBuffer)-                   -> io ()-cmdExecuteCommands commandBuffer commandBuffers = liftIO . evalContT $ do-  let vkCmdExecuteCommandsPtr = pVkCmdExecuteCommands (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  lift $ unless (vkCmdExecuteCommandsPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdExecuteCommands is null" Nothing Nothing-  let vkCmdExecuteCommands' = mkVkCmdExecuteCommands vkCmdExecuteCommandsPtr-  pPCommandBuffers <- ContT $ allocaBytes @(Ptr CommandBuffer_T) ((Data.Vector.length (commandBuffers)) * 8)-  lift $ Data.Vector.imapM_ (\i e -> poke (pPCommandBuffers `plusPtr` (8 * (i)) :: Ptr (Ptr CommandBuffer_T)) (commandBufferHandle (e))) (commandBuffers)-  lift $ traceAroundEvent "vkCmdExecuteCommands" (vkCmdExecuteCommands'-                                                    (commandBufferHandle (commandBuffer))-                                                    ((fromIntegral (Data.Vector.length $ (commandBuffers)) :: Word32))-                                                    (pPCommandBuffers))-  pure $ ()----- | VkClearRect - Structure specifying a clear rectangle------ = Description------ The layers [@baseArrayLayer@, @baseArrayLayer@ + @layerCount@) counting--- from the base layer of the attachment image view are cleared.------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.FundamentalTypes.Rect2D', 'cmdClearAttachments'-data ClearRect = ClearRect-  { -- | @rect@ is the two-dimensional region to be cleared.-    rect :: Rect2D-  , -- | @baseArrayLayer@ is the first layer to be cleared.-    baseArrayLayer :: Word32-  , -- | @layerCount@ is the number of layers to clear.-    layerCount :: Word32-  }-  deriving (Typeable)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (ClearRect)-#endif-deriving instance Show ClearRect--instance ToCStruct ClearRect where-  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)-  pokeCStruct p ClearRect{..} f = do-    poke ((p `plusPtr` 0 :: Ptr Rect2D)) (rect)-    poke ((p `plusPtr` 16 :: Ptr Word32)) (baseArrayLayer)-    poke ((p `plusPtr` 20 :: Ptr Word32)) (layerCount)-    f-  cStructSize = 24-  cStructAlignment = 4-  pokeZeroCStruct p f = do-    poke ((p `plusPtr` 0 :: Ptr Rect2D)) (zero)-    poke ((p `plusPtr` 16 :: Ptr Word32)) (zero)-    poke ((p `plusPtr` 20 :: Ptr Word32)) (zero)-    f--instance FromCStruct ClearRect where-  peekCStruct p = do-    rect <- peekCStruct @Rect2D ((p `plusPtr` 0 :: Ptr Rect2D))-    baseArrayLayer <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))-    layerCount <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))-    pure $ ClearRect-             rect baseArrayLayer layerCount--instance Storable ClearRect where-  sizeOf ~_ = 24-  alignment ~_ = 4-  peek = peekCStruct-  poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero ClearRect where-  zero = ClearRect-           zero-           zero-           zero----- | VkImageSubresourceLayers - Structure specifying an image subresource--- layers------ == Valid Usage------ -   #VUID-VkImageSubresourceLayers-aspectMask-00167# If @aspectMask@---     contains---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT', it---     /must/ not contain either of---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' or---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'------ -   #VUID-VkImageSubresourceLayers-aspectMask-00168# @aspectMask@ /must/---     not contain---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_METADATA_BIT'------ -   #VUID-VkImageSubresourceLayers-aspectMask-02247# @aspectMask@ /must/---     not include @VK_IMAGE_ASPECT_MEMORY_PLANE_i_BIT_EXT@ for any index---     /i/------ -   #VUID-VkImageSubresourceLayers-layerCount-09243# If the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-maintenance5 maintenance5>---     feature is not enabled, @layerCount@ /must/ not be---     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS'------ -   #VUID-VkImageSubresourceLayers-layerCount-01700# If @layerCount@ is---     not 'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS', it /must/---     be greater than 0------ == Valid Usage (Implicit)------ -   #VUID-VkImageSubresourceLayers-aspectMask-parameter# @aspectMask@---     /must/ be a valid combination of---     'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlagBits' values------ -   #VUID-VkImageSubresourceLayers-aspectMask-requiredbitmask#---     @aspectMask@ /must/ not be @0@------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'BufferImageCopy',--- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.BufferImageCopy2',--- 'Vulkan.Extensions.VK_NV_copy_memory_indirect.CopyMemoryToImageIndirectCommandNV',--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlags', 'ImageBlit',--- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.ImageBlit2',--- 'ImageCopy',--- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.ImageCopy2',--- 'ImageResolve',--- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.ImageResolve2',--- 'Vulkan.Extensions.VK_EXT_host_image_copy.ImageToMemoryCopyEXT',--- 'Vulkan.Extensions.VK_EXT_host_image_copy.MemoryToImageCopyEXT',--- 'Vulkan.Extensions.VK_NV_copy_memory_indirect.cmdCopyMemoryToImageIndirectNV'-data ImageSubresourceLayers = ImageSubresourceLayers-  { -- | @aspectMask@ is a combination of-    -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlagBits', selecting-    -- the color, depth and\/or stencil aspects to be copied.-    aspectMask :: ImageAspectFlags-  , -- | @mipLevel@ is the mipmap level to copy-    mipLevel :: Word32-  , -- | @baseArrayLayer@ and @layerCount@ are the starting layer and number of-    -- layers to copy.-    baseArrayLayer :: Word32-  , -- No documentation found for Nested "VkImageSubresourceLayers" "layerCount"-    layerCount :: Word32-  }-  deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (ImageSubresourceLayers)-#endif-deriving instance Show ImageSubresourceLayers--instance ToCStruct ImageSubresourceLayers where-  withCStruct x f = allocaBytes 16 $ \p -> pokeCStruct p x (f p)-  pokeCStruct p ImageSubresourceLayers{..} f = do-    poke ((p `plusPtr` 0 :: Ptr ImageAspectFlags)) (aspectMask)-    poke ((p `plusPtr` 4 :: Ptr Word32)) (mipLevel)-    poke ((p `plusPtr` 8 :: Ptr Word32)) (baseArrayLayer)-    poke ((p `plusPtr` 12 :: Ptr Word32)) (layerCount)-    f-  cStructSize = 16-  cStructAlignment = 4-  pokeZeroCStruct p f = do-    poke ((p `plusPtr` 0 :: Ptr ImageAspectFlags)) (zero)-    poke ((p `plusPtr` 4 :: Ptr Word32)) (zero)-    poke ((p `plusPtr` 8 :: Ptr Word32)) (zero)-    poke ((p `plusPtr` 12 :: Ptr Word32)) (zero)-    f--instance FromCStruct ImageSubresourceLayers where-  peekCStruct p = do-    aspectMask <- peek @ImageAspectFlags ((p `plusPtr` 0 :: Ptr ImageAspectFlags))-    mipLevel <- peek @Word32 ((p `plusPtr` 4 :: Ptr Word32))-    baseArrayLayer <- peek @Word32 ((p `plusPtr` 8 :: Ptr Word32))-    layerCount <- peek @Word32 ((p `plusPtr` 12 :: Ptr Word32))-    pure $ ImageSubresourceLayers-             aspectMask mipLevel baseArrayLayer layerCount--instance Storable ImageSubresourceLayers where-  sizeOf ~_ = 16-  alignment ~_ = 4-  peek = peekCStruct-  poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero ImageSubresourceLayers where-  zero = ImageSubresourceLayers-           zero-           zero-           zero-           zero----- | VkBufferCopy - Structure specifying a buffer copy operation------ == Valid Usage------ -   #VUID-VkBufferCopy-size-01988# The @size@ /must/ be greater than @0@------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.FundamentalTypes.DeviceSize', 'cmdCopyBuffer'-data BufferCopy = BufferCopy-  { -- | @srcOffset@ is the starting offset in bytes from the start of-    -- @srcBuffer@.-    srcOffset :: DeviceSize-  , -- | @dstOffset@ is the starting offset in bytes from the start of-    -- @dstBuffer@.-    dstOffset :: DeviceSize-  , -- | @size@ is the number of bytes to copy.-    size :: DeviceSize-  }-  deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (BufferCopy)-#endif-deriving instance Show BufferCopy--instance ToCStruct BufferCopy where-  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)-  pokeCStruct p BufferCopy{..} f = do-    poke ((p `plusPtr` 0 :: Ptr DeviceSize)) (srcOffset)-    poke ((p `plusPtr` 8 :: Ptr DeviceSize)) (dstOffset)-    poke ((p `plusPtr` 16 :: Ptr DeviceSize)) (size)-    f-  cStructSize = 24-  cStructAlignment = 8-  pokeZeroCStruct p f = do-    poke ((p `plusPtr` 0 :: Ptr DeviceSize)) (zero)-    poke ((p `plusPtr` 8 :: Ptr DeviceSize)) (zero)-    poke ((p `plusPtr` 16 :: Ptr DeviceSize)) (zero)-    f--instance FromCStruct BufferCopy where-  peekCStruct p = do-    srcOffset <- peek @DeviceSize ((p `plusPtr` 0 :: Ptr DeviceSize))-    dstOffset <- peek @DeviceSize ((p `plusPtr` 8 :: Ptr DeviceSize))-    size <- peek @DeviceSize ((p `plusPtr` 16 :: Ptr DeviceSize))-    pure $ BufferCopy-             srcOffset dstOffset size--instance Storable BufferCopy where-  sizeOf ~_ = 24-  alignment ~_ = 8-  peek = peekCStruct-  poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero BufferCopy where-  zero = BufferCopy-           zero-           zero-           zero----- | VkImageCopy - Structure specifying an image copy operation------ == Valid Usage------ -   #VUID-VkImageCopy-apiVersion-07940# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_sampler_ycbcr_conversion VK_KHR_sampler_ycbcr_conversion>---     extension is not enabled, and---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceProperties'::@apiVersion@---     is less than Vulkan 1.1, the @aspectMask@ member of @srcSubresource@---     and @dstSubresource@ /must/ match------ -   #VUID-VkImageCopy-apiVersion-07941# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance1 VK_KHR_maintenance1>---     extension is not enabled, and---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceProperties'::@apiVersion@---     is less than Vulkan 1.1, the @layerCount@ member of @srcSubresource@---     and @dstSubresource@ /must/ match------ -   #VUID-VkImageCopy-extent-06668# @extent.width@ /must/ not be 0------ -   #VUID-VkImageCopy-extent-06669# @extent.height@ /must/ not be 0------ -   #VUID-VkImageCopy-extent-06670# @extent.depth@ /must/ not be 0------ == Valid Usage (Implicit)------ -   #VUID-VkImageCopy-srcSubresource-parameter# @srcSubresource@ /must/---     be a valid 'ImageSubresourceLayers' structure------ -   #VUID-VkImageCopy-dstSubresource-parameter# @dstSubresource@ /must/---     be a valid 'ImageSubresourceLayers' structure------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.FundamentalTypes.Extent3D', 'ImageSubresourceLayers',--- 'Vulkan.Core10.FundamentalTypes.Offset3D', 'cmdCopyImage'-data ImageCopy = ImageCopy-  { -- | @srcSubresource@ and @dstSubresource@ are 'ImageSubresourceLayers'-    -- structures specifying the image subresources of the images used for the-    -- source and destination image data, respectively.-    srcSubresource :: ImageSubresourceLayers-  , -- | @srcOffset@ and @dstOffset@ select the initial @x@, @y@, and @z@ offsets-    -- in texels of the sub-regions of the source and destination image data.-    srcOffset :: Offset3D-  , -- No documentation found for Nested "VkImageCopy" "dstSubresource"-    dstSubresource :: ImageSubresourceLayers-  , -- No documentation found for Nested "VkImageCopy" "dstOffset"-    dstOffset :: Offset3D-  , -- | @extent@ is the size in texels of the image to copy in @width@, @height@-    -- and @depth@.-    extent :: Extent3D-  }-  deriving (Typeable)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (ImageCopy)-#endif-deriving instance Show ImageCopy--instance ToCStruct ImageCopy where-  withCStruct x f = allocaBytes 68 $ \p -> pokeCStruct p x (f p)-  pokeCStruct p ImageCopy{..} f = do-    poke ((p `plusPtr` 0 :: Ptr ImageSubresourceLayers)) (srcSubresource)-    poke ((p `plusPtr` 16 :: Ptr Offset3D)) (srcOffset)-    poke ((p `plusPtr` 28 :: Ptr ImageSubresourceLayers)) (dstSubresource)-    poke ((p `plusPtr` 44 :: Ptr Offset3D)) (dstOffset)-    poke ((p `plusPtr` 56 :: Ptr Extent3D)) (extent)-    f-  cStructSize = 68-  cStructAlignment = 4-  pokeZeroCStruct p f = do-    poke ((p `plusPtr` 0 :: Ptr ImageSubresourceLayers)) (zero)-    poke ((p `plusPtr` 16 :: Ptr Offset3D)) (zero)-    poke ((p `plusPtr` 28 :: Ptr ImageSubresourceLayers)) (zero)-    poke ((p `plusPtr` 44 :: Ptr Offset3D)) (zero)-    poke ((p `plusPtr` 56 :: Ptr Extent3D)) (zero)-    f--instance FromCStruct ImageCopy where-  peekCStruct p = do-    srcSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 0 :: Ptr ImageSubresourceLayers))-    srcOffset <- peekCStruct @Offset3D ((p `plusPtr` 16 :: Ptr Offset3D))-    dstSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 28 :: Ptr ImageSubresourceLayers))-    dstOffset <- peekCStruct @Offset3D ((p `plusPtr` 44 :: Ptr Offset3D))-    extent <- peekCStruct @Extent3D ((p `plusPtr` 56 :: Ptr Extent3D))-    pure $ ImageCopy-             srcSubresource srcOffset dstSubresource dstOffset extent--instance Storable ImageCopy where-  sizeOf ~_ = 68-  alignment ~_ = 4-  peek = peekCStruct-  poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero ImageCopy where-  zero = ImageCopy-           zero-           zero-           zero-           zero-           zero----- | VkImageBlit - Structure specifying an image blit operation------ = Description------ For each element of the @pRegions@ array, a blit operation is performed--- for the specified source and destination regions.------ == Valid Usage------ -   #VUID-VkImageBlit-aspectMask-00238# The @aspectMask@ member of---     @srcSubresource@ and @dstSubresource@ /must/ match------ -   #VUID-VkImageBlit-layerCount-08800# If neither of the @layerCount@---     members of @srcSubresource@ or @dstSubresource@ are---     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS', the---     @layerCount@ members of @srcSubresource@ or @dstSubresource@ /must/---     match------ -   #VUID-VkImageBlit-maintenance5-08799# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance5 maintenance5>---     feature is not enabled, the @layerCount@ member of @srcSubresource@---     or @dstSubresource@ /must/ not be---     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS'------ -   #VUID-VkImageBlit-layerCount-08801# If one of the @layerCount@---     members of @srcSubresource@ or @dstSubresource@ is---     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS', the other---     member /must/ be either---     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' or equal to the---     @arrayLayers@ member of the 'Vulkan.Core10.Image.ImageCreateInfo'---     used to create the image minus @baseArrayLayer@------ == Valid Usage (Implicit)------ -   #VUID-VkImageBlit-srcSubresource-parameter# @srcSubresource@ /must/---     be a valid 'ImageSubresourceLayers' structure------ -   #VUID-VkImageBlit-dstSubresource-parameter# @dstSubresource@ /must/---     be a valid 'ImageSubresourceLayers' structure------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'ImageSubresourceLayers', 'Vulkan.Core10.FundamentalTypes.Offset3D',--- 'cmdBlitImage'-data ImageBlit = ImageBlit-  { -- | @srcSubresource@ is the subresource to blit from.-    srcSubresource :: ImageSubresourceLayers-  , -- | @srcOffsets@ is a pointer to an array of two-    -- 'Vulkan.Core10.FundamentalTypes.Offset3D' structures specifying the-    -- bounds of the source region within @srcSubresource@.-    srcOffsets :: (Offset3D, Offset3D)-  , -- | @dstSubresource@ is the subresource to blit into.-    dstSubresource :: ImageSubresourceLayers-  , -- | @dstOffsets@ is a pointer to an array of two-    -- 'Vulkan.Core10.FundamentalTypes.Offset3D' structures specifying the-    -- bounds of the destination region within @dstSubresource@.-    dstOffsets :: (Offset3D, Offset3D)-  }-  deriving (Typeable)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (ImageBlit)-#endif-deriving instance Show ImageBlit--instance ToCStruct ImageBlit where-  withCStruct x f = allocaBytes 80 $ \p -> pokeCStruct p x (f p)-  pokeCStruct p ImageBlit{..} f = do-    poke ((p `plusPtr` 0 :: Ptr ImageSubresourceLayers)) (srcSubresource)-    let pSrcOffsets' = lowerArrayPtr ((p `plusPtr` 16 :: Ptr (FixedArray 2 Offset3D)))-    case (srcOffsets) of-      (e0, e1) -> do-        poke (pSrcOffsets' :: Ptr Offset3D) (e0)-        poke (pSrcOffsets' `plusPtr` 12 :: Ptr Offset3D) (e1)-    poke ((p `plusPtr` 40 :: Ptr ImageSubresourceLayers)) (dstSubresource)-    let pDstOffsets' = lowerArrayPtr ((p `plusPtr` 56 :: Ptr (FixedArray 2 Offset3D)))-    case (dstOffsets) of-      (e0, e1) -> do-        poke (pDstOffsets' :: Ptr Offset3D) (e0)-        poke (pDstOffsets' `plusPtr` 12 :: Ptr Offset3D) (e1)-    f-  cStructSize = 80-  cStructAlignment = 4-  pokeZeroCStruct p f = do-    poke ((p `plusPtr` 0 :: Ptr ImageSubresourceLayers)) (zero)-    let pSrcOffsets' = lowerArrayPtr ((p `plusPtr` 16 :: Ptr (FixedArray 2 Offset3D)))-    case ((zero, zero)) of-      (e0, e1) -> do-        poke (pSrcOffsets' :: Ptr Offset3D) (e0)-        poke (pSrcOffsets' `plusPtr` 12 :: Ptr Offset3D) (e1)-    poke ((p `plusPtr` 40 :: Ptr ImageSubresourceLayers)) (zero)-    let pDstOffsets' = lowerArrayPtr ((p `plusPtr` 56 :: Ptr (FixedArray 2 Offset3D)))-    case ((zero, zero)) of-      (e0, e1) -> do-        poke (pDstOffsets' :: Ptr Offset3D) (e0)-        poke (pDstOffsets' `plusPtr` 12 :: Ptr Offset3D) (e1)-    f--instance FromCStruct ImageBlit where-  peekCStruct p = do-    srcSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 0 :: Ptr ImageSubresourceLayers))-    let psrcOffsets = lowerArrayPtr @Offset3D ((p `plusPtr` 16 :: Ptr (FixedArray 2 Offset3D)))-    srcOffsets0 <- peekCStruct @Offset3D ((psrcOffsets `advancePtrBytes` 0 :: Ptr Offset3D))-    srcOffsets1 <- peekCStruct @Offset3D ((psrcOffsets `advancePtrBytes` 12 :: Ptr Offset3D))-    dstSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 40 :: Ptr ImageSubresourceLayers))-    let pdstOffsets = lowerArrayPtr @Offset3D ((p `plusPtr` 56 :: Ptr (FixedArray 2 Offset3D)))-    dstOffsets0 <- peekCStruct @Offset3D ((pdstOffsets `advancePtrBytes` 0 :: Ptr Offset3D))-    dstOffsets1 <- peekCStruct @Offset3D ((pdstOffsets `advancePtrBytes` 12 :: Ptr Offset3D))-    pure $ ImageBlit-             srcSubresource-             ((srcOffsets0, srcOffsets1))-             dstSubresource-             ((dstOffsets0, dstOffsets1))--instance Storable ImageBlit where-  sizeOf ~_ = 80-  alignment ~_ = 4-  peek = peekCStruct-  poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero ImageBlit where-  zero = ImageBlit-           zero-           (zero, zero)-           zero-           (zero, zero)----- | VkBufferImageCopy - Structure specifying a buffer image copy operation------ == Valid Usage------ -   #VUID-VkBufferImageCopy-bufferRowLength-09101# @bufferRowLength@---     /must/ be @0@, or greater than or equal to the @width@ member of---     @imageExtent@------ -   #VUID-VkBufferImageCopy-bufferImageHeight-09102# @bufferImageHeight@---     /must/ be @0@, or greater than or equal to the @height@ member of---     @imageExtent@------ -   #VUID-VkBufferImageCopy-aspectMask-09103# The @aspectMask@ member of---     @imageSubresource@ /must/ only have a single bit set------ -   #VUID-VkBufferImageCopy-imageExtent-06659# @imageExtent.width@---     /must/ not be 0------ -   #VUID-VkBufferImageCopy-imageExtent-06660# @imageExtent.height@---     /must/ not be 0------ -   #VUID-VkBufferImageCopy-imageExtent-06661# @imageExtent.depth@---     /must/ not be 0------ == Valid Usage (Implicit)------ -   #VUID-VkBufferImageCopy-imageSubresource-parameter#---     @imageSubresource@ /must/ be a valid 'ImageSubresourceLayers'---     structure------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.FundamentalTypes.DeviceSize',--- 'Vulkan.Core10.FundamentalTypes.Extent3D', 'ImageSubresourceLayers',--- 'Vulkan.Core10.FundamentalTypes.Offset3D', 'cmdCopyBufferToImage',--- 'cmdCopyImageToBuffer'-data BufferImageCopy = BufferImageCopy-  { -- | @bufferOffset@ is the offset in bytes from the start of the buffer-    -- object where the image data is copied from or to.-    bufferOffset :: DeviceSize-  , -- | @bufferRowLength@ and @bufferImageHeight@ specify in texels a subregion-    -- of a larger two- or three-dimensional image in buffer memory, and-    -- control the addressing calculations. If either of these values is zero,-    -- that aspect of the buffer memory is considered to be tightly packed-    -- according to the @imageExtent@.-    bufferRowLength :: Word32-  , -- No documentation found for Nested "VkBufferImageCopy" "bufferImageHeight"-    bufferImageHeight :: Word32-  , -- | @imageSubresource@ is a 'ImageSubresourceLayers' used to specify the-    -- specific image subresources of the image used for the source or-    -- destination image data.-    imageSubresource :: ImageSubresourceLayers-  , -- | @imageOffset@ selects the initial @x@, @y@, @z@ offsets in texels of the-    -- sub-region of the source or destination image data.-    imageOffset :: Offset3D-  , -- | @imageExtent@ is the size in texels of the image to copy in @width@,-    -- @height@ and @depth@.-    imageExtent :: Extent3D-  }-  deriving (Typeable)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (BufferImageCopy)-#endif-deriving instance Show BufferImageCopy--instance ToCStruct BufferImageCopy where-  withCStruct x f = allocaBytes 56 $ \p -> pokeCStruct p x (f p)-  pokeCStruct p BufferImageCopy{..} f = do-    poke ((p `plusPtr` 0 :: Ptr DeviceSize)) (bufferOffset)-    poke ((p `plusPtr` 8 :: Ptr Word32)) (bufferRowLength)-    poke ((p `plusPtr` 12 :: Ptr Word32)) (bufferImageHeight)-    poke ((p `plusPtr` 16 :: Ptr ImageSubresourceLayers)) (imageSubresource)-    poke ((p `plusPtr` 32 :: Ptr Offset3D)) (imageOffset)-    poke ((p `plusPtr` 44 :: Ptr Extent3D)) (imageExtent)-    f-  cStructSize = 56-  cStructAlignment = 8-  pokeZeroCStruct p f = do-    poke ((p `plusPtr` 0 :: Ptr DeviceSize)) (zero)-    poke ((p `plusPtr` 8 :: Ptr Word32)) (zero)-    poke ((p `plusPtr` 12 :: Ptr Word32)) (zero)-    poke ((p `plusPtr` 16 :: Ptr ImageSubresourceLayers)) (zero)-    poke ((p `plusPtr` 32 :: Ptr Offset3D)) (zero)-    poke ((p `plusPtr` 44 :: Ptr Extent3D)) (zero)-    f--instance FromCStruct BufferImageCopy where-  peekCStruct p = do-    bufferOffset <- peek @DeviceSize ((p `plusPtr` 0 :: Ptr DeviceSize))-    bufferRowLength <- peek @Word32 ((p `plusPtr` 8 :: Ptr Word32))-    bufferImageHeight <- peek @Word32 ((p `plusPtr` 12 :: Ptr Word32))-    imageSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 16 :: Ptr ImageSubresourceLayers))-    imageOffset <- peekCStruct @Offset3D ((p `plusPtr` 32 :: Ptr Offset3D))-    imageExtent <- peekCStruct @Extent3D ((p `plusPtr` 44 :: Ptr Extent3D))-    pure $ BufferImageCopy-             bufferOffset-             bufferRowLength-             bufferImageHeight-             imageSubresource-             imageOffset-             imageExtent--instance Storable BufferImageCopy where-  sizeOf ~_ = 56-  alignment ~_ = 8-  peek = peekCStruct-  poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero BufferImageCopy where-  zero = BufferImageCopy-           zero-           zero-           zero-           zero-           zero-           zero----- | VkImageResolve - Structure specifying an image resolve operation------ == Valid Usage------ -   #VUID-VkImageResolve-aspectMask-00266# The @aspectMask@ member of---     @srcSubresource@ and @dstSubresource@ /must/ only contain---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'------ -   #VUID-VkImageResolve-layerCount-08803# If neither of the---     @layerCount@ members of @srcSubresource@ or @dstSubresource@ are---     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS', the---     @layerCount@ member of @srcSubresource@ and @dstSubresource@ /must/---     match------ -   #VUID-VkImageResolve-maintenance5-08802# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance5 maintenance5>---     feature is not enabled, the @layerCount@ member of @srcSubresource@---     or @dstSubresource@ /must/ not be---     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS'------ -   #VUID-VkImageResolve-layerCount-08804# If one of the @layerCount@---     members of @srcSubresource@ or @dstSubresource@ is---     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS', the other---     member /must/ be either---     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' or equal to the---     @arrayLayers@ member of the 'Vulkan.Core10.Image.ImageCreateInfo'---     used to create the image minus @baseArrayLayer@------ == Valid Usage (Implicit)------ -   #VUID-VkImageResolve-srcSubresource-parameter# @srcSubresource@---     /must/ be a valid 'ImageSubresourceLayers' structure------ -   #VUID-VkImageResolve-dstSubresource-parameter# @dstSubresource@---     /must/ be a valid 'ImageSubresourceLayers' structure------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,--- 'Vulkan.Core10.FundamentalTypes.Extent3D', 'ImageSubresourceLayers',--- 'Vulkan.Core10.FundamentalTypes.Offset3D', 'cmdResolveImage'-data ImageResolve = ImageResolve-  { -- | @srcSubresource@ and @dstSubresource@ are 'ImageSubresourceLayers'-    -- structures specifying the image subresources of the images used for the-    -- source and destination image data, respectively. Resolve of-    -- depth\/stencil images is not supported.-    srcSubresource :: ImageSubresourceLayers-  , -- | @srcOffset@ and @dstOffset@ select the initial @x@, @y@, and @z@ offsets-    -- in texels of the sub-regions of the source and destination image data.-    srcOffset :: Offset3D-  , -- No documentation found for Nested "VkImageResolve" "dstSubresource"-    dstSubresource :: ImageSubresourceLayers-  , -- No documentation found for Nested "VkImageResolve" "dstOffset"-    dstOffset :: Offset3D-  , -- | @extent@ is the size in texels of the source image to resolve in-    -- @width@, @height@ and @depth@.-    extent :: Extent3D-  }-  deriving (Typeable)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (ImageResolve)-#endif-deriving instance Show ImageResolve--instance ToCStruct ImageResolve where-  withCStruct x f = allocaBytes 68 $ \p -> pokeCStruct p x (f p)-  pokeCStruct p ImageResolve{..} f = do-    poke ((p `plusPtr` 0 :: Ptr ImageSubresourceLayers)) (srcSubresource)-    poke ((p `plusPtr` 16 :: Ptr Offset3D)) (srcOffset)-    poke ((p `plusPtr` 28 :: Ptr ImageSubresourceLayers)) (dstSubresource)-    poke ((p `plusPtr` 44 :: Ptr Offset3D)) (dstOffset)-    poke ((p `plusPtr` 56 :: Ptr Extent3D)) (extent)-    f-  cStructSize = 68-  cStructAlignment = 4-  pokeZeroCStruct p f = do-    poke ((p `plusPtr` 0 :: Ptr ImageSubresourceLayers)) (zero)-    poke ((p `plusPtr` 16 :: Ptr Offset3D)) (zero)-    poke ((p `plusPtr` 28 :: Ptr ImageSubresourceLayers)) (zero)-    poke ((p `plusPtr` 44 :: Ptr Offset3D)) (zero)-    poke ((p `plusPtr` 56 :: Ptr Extent3D)) (zero)-    f--instance FromCStruct ImageResolve where-  peekCStruct p = do-    srcSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 0 :: Ptr ImageSubresourceLayers))-    srcOffset <- peekCStruct @Offset3D ((p `plusPtr` 16 :: Ptr Offset3D))-    dstSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 28 :: Ptr ImageSubresourceLayers))-    dstOffset <- peekCStruct @Offset3D ((p `plusPtr` 44 :: Ptr Offset3D))-    extent <- peekCStruct @Extent3D ((p `plusPtr` 56 :: Ptr Extent3D))-    pure $ ImageResolve-             srcSubresource srcOffset dstSubresource dstOffset extent--instance Storable ImageResolve where-  sizeOf ~_ = 68-  alignment ~_ = 4-  peek = peekCStruct-  poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero ImageResolve where-  zero = ImageResolve-           zero-           zero-           zero-           zero-           zero----- | VkRenderPassBeginInfo - Structure specifying render pass begin--- information------ = Description------ @renderArea@ is the render area that is affected by the render pass--- instance. The effects of attachment load, store and multisample resolve--- operations are restricted to the pixels whose x and y coordinates fall--- within the render area on all attachments. The render area extends to--- all layers of @framebuffer@. The application /must/ ensure (using--- scissor if necessary) that all rendering is contained within the render--- area. The render area, after any transform specified by--- 'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM'::@transform@--- is applied, /must/ be contained within the framebuffer dimensions.------ If--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#vertexpostproc-renderpass-transform render pass transform>--- is enabled, then @renderArea@ /must/ equal the framebuffer--- pre-transformed dimensions. After @renderArea@ has been transformed by--- 'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM'::@transform@,--- the resulting render area /must/ be equal to the framebuffer dimensions.------ If multiview is enabled in @renderPass@, and--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiview-per-view-render-areas multiviewPerViewRenderAreas>--- feature is enabled, and there is an instance of--- 'Vulkan.Extensions.VK_QCOM_multiview_per_view_render_areas.MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM'--- included in the @pNext@ chain with @perViewRenderAreaCount@ not equal to--- @0@, then the elements of--- 'Vulkan.Extensions.VK_QCOM_multiview_per_view_render_areas.MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM'::@pPerViewRenderAreas@--- override @renderArea@ and define a render area for each view. In this--- case, @renderArea@ /must/ be set to an area at least as large as the--- union of all the per-view render areas.------ If the--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-subpassShading subpassShading>--- feature is enabled, then @renderArea@ /must/ equal the framebuffer--- dimensions.------ Note------ There /may/ be a performance cost for using a render area smaller than--- the framebuffer, unless it matches the render area granularity for the--- render pass.------ == Valid Usage------ -   #VUID-VkRenderPassBeginInfo-clearValueCount-00902# @clearValueCount@---     /must/ be greater than the largest attachment index in @renderPass@---     specifying a @loadOp@ (or @stencilLoadOp@, if the attachment has a---     depth\/stencil format) of---     'Vulkan.Core10.Enums.AttachmentLoadOp.ATTACHMENT_LOAD_OP_CLEAR'------ -   #VUID-VkRenderPassBeginInfo-clearValueCount-04962# If---     @clearValueCount@ is not @0@, @pClearValues@ /must/ be a valid---     pointer to an array of @clearValueCount@ 'ClearValue' unions------ -   #VUID-VkRenderPassBeginInfo-renderPass-00904# @renderPass@ /must/ be---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-compatibility compatible>---     with the @renderPass@ member of the---     'Vulkan.Core10.Pass.FramebufferCreateInfo' structure specified when---     creating @framebuffer@------ -   #VUID-VkRenderPassBeginInfo-None-08996# If---     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'::@deviceRenderAreaCount@---     is 0, @renderArea.extent.width@ /must/ be greater than 0------ -   #VUID-VkRenderPassBeginInfo-None-08997# If---     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'::@deviceRenderAreaCount@---     is 0, @renderArea.extent.height@ /must/ be greater than 0------ -   #VUID-VkRenderPassBeginInfo-pNext-02850# If the @pNext@ chain does---     not contain---     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'---     or its @deviceRenderAreaCount@ member is equal to 0,---     @renderArea.offset.x@ /must/ be greater than or equal to 0------ -   #VUID-VkRenderPassBeginInfo-pNext-02851# If the @pNext@ chain does---     not contain---     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'---     or its @deviceRenderAreaCount@ member is equal to 0,---     @renderArea.offset.y@ /must/ be greater than or equal to 0------ -   #VUID-VkRenderPassBeginInfo-pNext-02852# If the @pNext@ chain does---     not contain---     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'---     or its @deviceRenderAreaCount@ member is equal to 0,---     @renderArea.offset.x@ + @renderArea.extent.width@ /must/ be less---     than or equal to 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@width@---     the @framebuffer@ was created with------ -   #VUID-VkRenderPassBeginInfo-pNext-02853# If the @pNext@ chain does---     not contain---     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'---     or its @deviceRenderAreaCount@ member is equal to 0,---     @renderArea.offset.y@ + @renderArea.extent.height@ /must/ be less---     than or equal to---     'Vulkan.Core10.Pass.FramebufferCreateInfo'::@height@ the---     @framebuffer@ was created with------ -   #VUID-VkRenderPassBeginInfo-pNext-02856# If the @pNext@ chain---     contains---     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo',---     @offset.x@ + @extent.width@ of each element of @pDeviceRenderAreas@---     /must/ be less than or equal to---     'Vulkan.Core10.Pass.FramebufferCreateInfo'::@width@ the---     @framebuffer@ was created with------ -   #VUID-VkRenderPassBeginInfo-pNext-02857# If the @pNext@ chain---     contains---     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo',---     @offset.y@ + @extent.height@ of each element of @pDeviceRenderAreas@---     /must/ be less than or equal to---     'Vulkan.Core10.Pass.FramebufferCreateInfo'::@height@ the---     @framebuffer@ was created with------ -   #VUID-VkRenderPassBeginInfo-framebuffer-03207# If @framebuffer@ was---     created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@---     value that did not include---     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',---     and the @pNext@ chain includes a---     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'---     structure, its @attachmentCount@ /must/ be zero------ -   #VUID-VkRenderPassBeginInfo-framebuffer-03208# If @framebuffer@ was---     created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@---     value that included---     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',---     the @attachmentCount@ of a---     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'---     structure included in the @pNext@ chain /must/ be equal to the value---     of---     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'::@attachmentImageInfoCount@---     used to create @framebuffer@------ -   #VUID-VkRenderPassBeginInfo-framebuffer-02780# If @framebuffer@ was---     created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@---     value that included---     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',---     each element of the @pAttachments@ member of a---     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'---     structure included in the @pNext@ chain /must/ have been created on---     the same 'Vulkan.Core10.Handles.Device' as @framebuffer@ and---     @renderPass@------ -   #VUID-VkRenderPassBeginInfo-framebuffer-03209# If @framebuffer@ was---     created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@---     value that included---     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',---     each element of the @pAttachments@ member of a---     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'---     structure included in the @pNext@ chain /must/ be a---     'Vulkan.Core10.Handles.ImageView' of an image created with a value---     of 'Vulkan.Core10.Image.ImageCreateInfo'::@flags@ equal to the---     @flags@ member of the corresponding element of---     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'::@pAttachmentImageInfos@---     used to create @framebuffer@------ -   #VUID-VkRenderPassBeginInfo-framebuffer-04627# If @framebuffer@ was---     created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@---     value that included---     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',---     each element of the @pAttachments@ member of a---     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'---     structure included in the @pNext@ chain /must/ be a---     'Vulkan.Core10.Handles.ImageView' with---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-inherited-usage an inherited usage>---     equal to the @usage@ member of the corresponding element of---     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'::@pAttachmentImageInfos@---     used to create @framebuffer@------ -   #VUID-VkRenderPassBeginInfo-framebuffer-03211# If @framebuffer@ was---     created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@---     value that included---     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',---     each element of the @pAttachments@ member of a---     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'---     structure included in the @pNext@ chain /must/ be a---     'Vulkan.Core10.Handles.ImageView' with a width equal to the @width@---     member of the corresponding element of---     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'::@pAttachmentImageInfos@---     used to create @framebuffer@------ -   #VUID-VkRenderPassBeginInfo-framebuffer-03212# If @framebuffer@ was---     created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@---     value that included---     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',---     each element of the @pAttachments@ member of a---     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'---     structure included in the @pNext@ chain /must/ be a---     'Vulkan.Core10.Handles.ImageView' with a height equal to the---     @height@ member of the corresponding element of---     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'::@pAttachmentImageInfos@---     used to create @framebuffer@------ -   #VUID-VkRenderPassBeginInfo-framebuffer-03213# If @framebuffer@ was---     created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@---     value that included---     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',---     each element of the @pAttachments@ member of a---     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'---     structure included in the @pNext@ chain /must/ be a---     'Vulkan.Core10.Handles.ImageView' of an image created with a value---     of---     'Vulkan.Core10.ImageView.ImageViewCreateInfo'::@subresourceRange.layerCount@---     equal to the @layerCount@ member of the corresponding element of---     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'::@pAttachmentImageInfos@---     used to create @framebuffer@------ -   #VUID-VkRenderPassBeginInfo-framebuffer-03214# If @framebuffer@ was---     created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@---     value that included---     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',---     each element of the @pAttachments@ member of a---     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'---     structure included in the @pNext@ chain /must/ be a---     'Vulkan.Core10.Handles.ImageView' of an image created with a value---     of---     'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo'::@viewFormatCount@---     equal to the @viewFormatCount@ member of the corresponding element---     of---     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'::@pAttachmentImageInfos@---     used to create @framebuffer@------ -   #VUID-VkRenderPassBeginInfo-framebuffer-03215# If @framebuffer@ was---     created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@---     value that included---     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',---     each element of the @pAttachments@ member of a---     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'---     structure included in the @pNext@ chain /must/ be a---     'Vulkan.Core10.Handles.ImageView' of an image created with a set of---     elements in---     'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo'::@pViewFormats@---     equal to the set of elements in the @pViewFormats@ member of the---     corresponding element of---     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'::@pAttachmentImageInfos@---     used to create @framebuffer@------ -   #VUID-VkRenderPassBeginInfo-framebuffer-03216# If @framebuffer@ was---     created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@---     value that included---     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',---     each element of the @pAttachments@ member of a---     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'---     structure included in the @pNext@ chain /must/ be a---     'Vulkan.Core10.Handles.ImageView' of an image created with a value---     of 'Vulkan.Core10.ImageView.ImageViewCreateInfo'::@format@ equal to---     the corresponding value of---     'Vulkan.Core10.Pass.AttachmentDescription'::@format@ in @renderPass@------ -   #VUID-VkRenderPassBeginInfo-framebuffer-09353# If @framebuffer@ was---     created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@---     value that included---     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',---     and the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-nullColorAttachmentWithExternalFormatResolve nullColorAttachmentWithExternalFormatResolve>---     is 'Vulkan.Core10.FundamentalTypes.FALSE', the format of the color---     attachment for each subpass that includes an external format image---     as a resolve attachment /must/ have a format equal to the value of---     'Vulkan.Extensions.VK_ANDROID_external_format_resolve.AndroidHardwareBufferFormatResolvePropertiesANDROID'::@colorAttachmentFormat@---     as returned by a call to---     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.getAndroidHardwareBufferPropertiesANDROID'---     for the Android hardware buffer that was used to create the image---     view use as its resolve attachment------ -   #VUID-VkRenderPassBeginInfo-framebuffer-09354# If @framebuffer@ was---     created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@---     value that included---     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',---     each element of the @pAttachments@ member of a---     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'---     structure included in the @pNext@ chain /must/ be a---     'Vulkan.Core10.Handles.ImageView' of an image created with a value---     of---     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@---     equal to---     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@---     in the @pNext@ chain of the corresponding---     'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.AttachmentDescription2'---     structure used to create @renderPass@------ -   #VUID-VkRenderPassBeginInfo-framebuffer-09047# If @framebuffer@ was---     created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@---     value that included---     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',---     each element of the @pAttachments@ member of a---     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'---     structure included in the @pNext@ chain /must/ be a---     'Vulkan.Core10.Handles.ImageView' of an image created with a value---     of 'Vulkan.Core10.Image.ImageCreateInfo'::@samples@ equal to the---     corresponding value of---     'Vulkan.Core10.Pass.AttachmentDescription'::@samples@ in---     @renderPass@ , or---     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' if---     @renderPass@ was created with---     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'---     structure in the @pNext@ chain with---     @multisampledRenderToSingleSampledEnable@ equal to---     'Vulkan.Core10.FundamentalTypes.TRUE'------ -   #VUID-VkRenderPassBeginInfo-pNext-02869# If the @pNext@ chain---     includes---     '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.------ == 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',---     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 @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/------ -   #VUID-VkClearAttachment-clearValue-00021# @clearValue@ /must/ be a---     valid 'ClearValue' union+--     a result of this command /must/ not have a+--     'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'::@reductionMode@+--     equal to+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM'+--+-- -   #VUID-vkCmdDraw-reductionMode-09213# Any+--     'Vulkan.Core10.Handles.ImageView' being sampled with a+--     'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'::@reductionMode@+--     equal to+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM'+--     as a result of this command /must/ sample with+--     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT'+--+-- -   #VUID-vkCmdDraw-selectableCubicWeights-09214# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-weight-selection selectableCubicWeights>+--     feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView'+--     being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as+--     a result of this command /must/ have+--     'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.SamplerCubicWeightsCreateInfoQCOM'::@cubicWeights@+--     equal to+--     'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM'+--+-- -   #VUID-vkCmdDraw-flags-02696# Any 'Vulkan.Core10.Handles.Image'+--     created with a 'Vulkan.Core10.Image.ImageCreateInfo'::@flags@+--     containing+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_CORNER_SAMPLED_BIT_NV'+--     sampled as a result of this command /must/ only be sampled using a+--     'Vulkan.Core10.Enums.SamplerAddressMode.SamplerAddressMode' of+--     'Vulkan.Core10.Enums.SamplerAddressMode.SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE'+--+-- -   #VUID-vkCmdDraw-OpTypeImage-07027# For any+--     'Vulkan.Core10.Handles.ImageView' being written as a storage image+--     where the image format field of the @OpTypeImage@ is @Unknown@, the+--     view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'+--+-- -   #VUID-vkCmdDraw-OpTypeImage-07028# For any+--     'Vulkan.Core10.Handles.ImageView' being read as a storage image+--     where the image format field of the @OpTypeImage@ is @Unknown@, the+--     view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT'+--+-- -   #VUID-vkCmdDraw-OpTypeImage-07029# For any+--     'Vulkan.Core10.Handles.BufferView' being written as a storage texel+--     buffer where the image format field of the @OpTypeImage@ is+--     @Unknown@, the view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'+--+-- -   #VUID-vkCmdDraw-OpTypeImage-07030# Any+--     'Vulkan.Core10.Handles.BufferView' being read as a storage texel+--     buffer where the image format field of the @OpTypeImage@ is+--     @Unknown@ then the view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT'+--+-- -   #VUID-vkCmdDraw-None-08600# For each set /n/ that is statically used+--     by+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,+--     a descriptor set /must/ have been bound to /n/ at the same pipeline+--     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is+--     compatible for set /n/, with the+--     'Vulkan.Core10.Handles.PipelineLayout' or+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to+--     create the current 'Vulkan.Core10.Handles.Pipeline' or+--     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>+--+-- -   #VUID-vkCmdDraw-None-08601# For each push constant that is+--     statically used by+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,+--     a push constant value /must/ have been set for the same pipeline+--     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is+--     compatible for push constants, with the+--     'Vulkan.Core10.Handles.PipelineLayout' or+--     'Vulkan.Core10.Handles.DescriptorSetLayout' and+--     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to+--     create the current 'Vulkan.Core10.Handles.Pipeline' or+--     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>+--+-- -   #VUID-vkCmdDraw-maintenance4-08602# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance4 maintenance4>+--     feature is not enabled, then for each push constant that is+--     statically used by+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,+--     a push constant value /must/ have been set for the same pipeline+--     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is+--     compatible for push constants, with the+--     'Vulkan.Core10.Handles.PipelineLayout' or+--     'Vulkan.Core10.Handles.DescriptorSetLayout' and+--     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to+--     create the current 'Vulkan.Core10.Handles.Pipeline' or+--     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>+--+-- -   #VUID-vkCmdDraw-None-08114# Descriptors in each bound descriptor+--     set, specified via 'cmdBindDescriptorSets', /must/ be valid if they+--     are statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to+--     the pipeline bind point used by this command and the bound+--     'Vulkan.Core10.Handles.Pipeline' was not created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDraw-None-08115# If the descriptors used by the+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+--     were specified via 'cmdBindDescriptorSets', the bound+--     'Vulkan.Core10.Handles.Pipeline' /must/ have been created without+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDraw-None-08116# Descriptors in bound descriptor buffers,+--     specified via+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',+--     /must/ be valid if they are dynamically used by the+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+--     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'+--     was created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDraw-None-08604# Descriptors in bound descriptor buffers,+--     specified via+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',+--     /must/ be valid if they are dynamically used by any+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding+--     to the pipeline bind point used by this command+--+-- -   #VUID-vkCmdDraw-None-08117# If the descriptors used by the+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+--     were specified via+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',+--     the bound 'Vulkan.Core10.Handles.Pipeline' /must/ have been created+--     with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDraw-None-08119# If a descriptor is dynamically used with+--     a 'Vulkan.Core10.Handles.Pipeline' created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',+--     the descriptor memory /must/ be resident+--+-- -   #VUID-vkCmdDraw-None-08605# If a descriptor is dynamically used with+--     a 'Vulkan.Extensions.Handles.ShaderEXT' created with a+--     'Vulkan.Core10.Handles.DescriptorSetLayout' that was created with+--     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',+--     the descriptor memory /must/ be resident+--+-- -   #VUID-vkCmdDraw-None-08606# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>+--     feature is not enabled, a valid pipeline /must/ be bound to the+--     pipeline bind point used by this command+--+-- -   #VUID-vkCmdDraw-None-08607# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>+--     is enabled, either a valid pipeline /must/ be bound to the pipeline+--     bind point used by this command, or a valid combination of valid and+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be+--     bound to every supported shader stage corresponding to the pipeline+--     bind point used by this command+--+-- -   #VUID-vkCmdDraw-None-08608# If a pipeline is bound to the pipeline+--     bind point used by this command, there /must/ not have been any+--     calls to dynamic state setting commands for any state not specified+--     as dynamic in the 'Vulkan.Core10.Handles.Pipeline' object bound to+--     the pipeline bind point used by this command, since that pipeline+--     was bound+--+-- -   #VUID-vkCmdDraw-None-08609# If the 'Vulkan.Core10.Handles.Pipeline'+--     object bound to the pipeline bind point used by this command or any+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding+--     to the pipeline bind point used by this command accesses a+--     'Vulkan.Core10.Handles.Sampler' object that uses unnormalized+--     coordinates, that sampler /must/ not be used to sample from any+--     'Vulkan.Core10.Handles.Image' with a+--     'Vulkan.Core10.Handles.ImageView' of the type+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D',+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE',+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D_ARRAY',+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D_ARRAY' or+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY', in+--     any shader stage+--+-- -   #VUID-vkCmdDraw-None-08610# If the 'Vulkan.Core10.Handles.Pipeline'+--     object bound to the pipeline bind point used by this command or any+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding+--     to the pipeline bind point used by this command accesses a+--     'Vulkan.Core10.Handles.Sampler' object that uses unnormalized+--     coordinates, that sampler /must/ not be used with any of the SPIR-V+--     @OpImageSample*@ or @OpImageSparseSample*@ instructions with+--     @ImplicitLod@, @Dref@ or @Proj@ in their name, in any shader stage+--+-- -   #VUID-vkCmdDraw-None-08611# If the 'Vulkan.Core10.Handles.Pipeline'+--     object bound to the pipeline bind point used by this command or any+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding+--     to the pipeline bind point used by this command accesses a+--     'Vulkan.Core10.Handles.Sampler' object that uses unnormalized+--     coordinates, that sampler /must/ not be used with any of the SPIR-V+--     @OpImageSample*@ or @OpImageSparseSample*@ instructions that+--     includes a LOD bias or any offset values, in any shader stage+--+-- -   #VUID-vkCmdDraw-uniformBuffers-06935# If any stage of the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command accesses a uniform buffer, and that stage+--     was created without enabling either+--     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'+--     or+--     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+--     for @uniformBuffers@, and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+--     feature is not enabled, that stage /must/ not access values outside+--     of the range of the buffer as specified in the descriptor set bound+--     to the same pipeline bind point+--+-- -   #VUID-vkCmdDraw-None-08612# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+--     feature is not enabled, and any+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding+--     to the pipeline bind point used by this command accesses a uniform+--     buffer, it /must/ not access values outside of the range of the+--     buffer as specified in the descriptor set bound to the same pipeline+--     bind point+--+-- -   #VUID-vkCmdDraw-storageBuffers-06936# If any stage of the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command accesses a storage buffer, and that stage+--     was created without enabling either+--     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'+--     or+--     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+--     for @storageBuffers@, and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+--     feature is not enabled, that stage /must/ not access values outside+--     of the range of the buffer as specified in the descriptor set bound+--     to the same pipeline bind point+--+-- -   #VUID-vkCmdDraw-None-08613# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+--     feature is not enabled, and any+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding+--     to the pipeline bind point used by this command accesses a storage+--     buffer, it /must/ not access values outside of the range of the+--     buffer as specified in the descriptor set bound to the same pipeline+--     bind point+--+-- -   #VUID-vkCmdDraw-commandBuffer-02707# If @commandBuffer@ is an+--     unprotected command buffer and+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+--     is not supported, any resource accessed by+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding bound shaders>+--     /must/ not be a protected resource+--+-- -   #VUID-vkCmdDraw-None-06550# If+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>+--     accesses a 'Vulkan.Core10.Handles.Sampler' or+--     'Vulkan.Core10.Handles.ImageView' object that enables+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,+--     that object /must/ only be used with @OpImageSample*@ or+--     @OpImageSparseSample*@ instructions+--+-- -   #VUID-vkCmdDraw-ConstOffset-06551# If+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>+--     accesses a 'Vulkan.Core10.Handles.Sampler' or+--     'Vulkan.Core10.Handles.ImageView' object that enables+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,+--     that object /must/ not use the @ConstOffset@ and @Offset@ operands+--+-- -   #VUID-vkCmdDraw-viewType-07752# If a+--     'Vulkan.Core10.Handles.ImageView' is accessed as a result of this+--     command, then the image view’s @viewType@ /must/ match the @Dim@+--     operand of the @OpTypeImage@ as described in+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-operation-validation ???>+--+-- -   #VUID-vkCmdDraw-format-07753# If a 'Vulkan.Core10.Handles.ImageView'+--     is accessed as a result of this command, then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-numericformat numeric type>+--     of the image view’s @format@ and the @Sampled@ @Type@ operand of the+--     @OpTypeImage@ /must/ match+--+-- -   #VUID-vkCmdDraw-OpImageWrite-08795# If a+--     'Vulkan.Core10.Handles.ImageView' created with a format other than+--     'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using+--     @OpImageWrite@ as a result of this command, then the @Type@ of the+--     @Texel@ operand of that instruction /must/ have at least as many+--     components as the image view’s format+--+-- -   #VUID-vkCmdDraw-OpImageWrite-08796# If a+--     'Vulkan.Core10.Handles.ImageView' created with the format+--     'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using+--     @OpImageWrite@ as a result of this command, then the @Type@ of the+--     @Texel@ operand of that instruction /must/ have four components+--+-- -   #VUID-vkCmdDraw-OpImageWrite-04469# If a+--     'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@+--     as a result of this command, then the @Type@ of the @Texel@ operand+--     of that instruction /must/ have at least as many components as the+--     buffer view’s format+--+-- -   #VUID-vkCmdDraw-SampledType-04470# If a+--     'Vulkan.Core10.Handles.ImageView' with a+--     'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component+--     width is accessed as a result of this command, the @SampledType@ of+--     the @OpTypeImage@ operand of that instruction /must/ have a @Width@+--     of 64+--+-- -   #VUID-vkCmdDraw-SampledType-04471# If a+--     'Vulkan.Core10.Handles.ImageView' with a+--     'Vulkan.Core10.Enums.Format.Format' that has a component width less+--     than 64-bit is accessed as a result of this command, the+--     @SampledType@ of the @OpTypeImage@ operand of that instruction+--     /must/ have a @Width@ of 32+--+-- -   #VUID-vkCmdDraw-SampledType-04472# If a+--     'Vulkan.Core10.Handles.BufferView' with a+--     'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component+--     width is accessed as a result of this command, the @SampledType@ of+--     the @OpTypeImage@ operand of that instruction /must/ have a @Width@+--     of 64+--+-- -   #VUID-vkCmdDraw-SampledType-04473# If a+--     'Vulkan.Core10.Handles.BufferView' with a+--     'Vulkan.Core10.Enums.Format.Format' that has a component width less+--     than 64-bit is accessed as a result of this command, the+--     @SampledType@ of the @OpTypeImage@ operand of that instruction+--     /must/ have a @Width@ of 32+--+-- -   #VUID-vkCmdDraw-sparseImageInt64Atomics-04474# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>+--     feature is not enabled, 'Vulkan.Core10.Handles.Image' objects+--     created with the+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_RESIDENCY_BIT'+--     flag /must/ not be accessed by atomic instructions through an+--     @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this+--     command+--+-- -   #VUID-vkCmdDraw-sparseImageInt64Atomics-04475# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>+--     feature is not enabled, 'Vulkan.Core10.Handles.Buffer' objects+--     created with the+--     'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_SPARSE_RESIDENCY_BIT'+--     flag /must/ not be accessed by atomic instructions through an+--     @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this+--     command+--+-- -   #VUID-vkCmdDraw-OpImageWeightedSampleQCOM-06971# If+--     @OpImageWeightedSampleQCOM@ is used to sample a+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then+--     the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM'+--+-- -   #VUID-vkCmdDraw-OpImageWeightedSampleQCOM-06972# If+--     @OpImageWeightedSampleQCOM@ uses a 'Vulkan.Core10.Handles.ImageView'+--     as a sample weight image as a result of this command, then the image+--     view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM'+--+-- -   #VUID-vkCmdDraw-OpImageBoxFilterQCOM-06973# If+--     @OpImageBoxFilterQCOM@ is used to sample a+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then+--     the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM'+--+-- -   #VUID-vkCmdDraw-OpImageBlockMatchSSDQCOM-06974# If+--     @OpImageBlockMatchSSDQCOM@ is used to read from an+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then+--     the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- -   #VUID-vkCmdDraw-OpImageBlockMatchSADQCOM-06975# If+--     @OpImageBlockMatchSADQCOM@ is used to read from an+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then+--     the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- -   #VUID-vkCmdDraw-OpImageBlockMatchSADQCOM-06976# If+--     @OpImageBlockMatchSADQCOM@ or OpImageBlockMatchSSDQCOM is used to+--     read from a reference image as result of this command, then the+--     specified reference coordinates /must/ not fail+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation integer texel coordinate validation>+--+-- -   #VUID-vkCmdDraw-OpImageWeightedSampleQCOM-06977# If+--     @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,+--     @OpImageBlockMatchWindowSSDQCOM@, @OpImageBlockMatchWindowSADQCOM@,+--     @OpImageBlockMatchGatherSSDQCOM@, @OpImageBlockMatchGatherSADQCOM@,+--     @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a+--     'Vulkan.Core10.Handles.Sampler' as a result of this command, then+--     the sampler /must/ have been created with+--     'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'+--+-- -   #VUID-vkCmdDraw-OpImageWeightedSampleQCOM-06978# If any command+--     other than @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,+--     @OpImageBlockMatchWindowSSDQCOM@, @OpImageBlockMatchWindowSADQCOM@,+--     @OpImageBlockMatchGatherSSDQCOM@, @OpImageBlockMatchGatherSADQCOM@,+--     @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a+--     'Vulkan.Core10.Handles.Sampler' as a result of this command, then+--     the sampler /must/ not have been created with+--     'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'+--+-- -   #VUID-vkCmdDraw-OpImageBlockMatchWindow-09215# If a+--     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@+--     instruction is used to read from an+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then+--     the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- -   #VUID-vkCmdDraw-OpImageBlockMatchWindow-09216# If a+--     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@+--     instruction is used to read from an+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then+--     the image view’s format /must/ be a single-component format.+--+-- -   #VUID-vkCmdDraw-OpImageBlockMatchWindow-09217# If a+--     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@+--     read from a reference image as result of this command, then the+--     specified reference coordinates /must/ not fail+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation integer texel coordinate validation>+--+-- -   #VUID-vkCmdDraw-None-07288# Any shader invocation executed by this+--     command /must/+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-termination terminate>+--+-- -   #VUID-vkCmdDraw-renderPass-02684# The current render pass /must/ be+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-compatibility compatible>+--     with the @renderPass@ member of the+--     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo' structure+--     specified when creating the 'Vulkan.Core10.Handles.Pipeline' bound+--     to+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'+--+-- -   #VUID-vkCmdDraw-subpass-02685# The subpass index of the current+--     render pass /must/ be equal to the @subpass@ member of the+--     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo' structure+--     specified when creating the 'Vulkan.Core10.Handles.Pipeline' bound+--     to+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'+--+-- -   #VUID-vkCmdDraw-None-07748# If any shader statically accesses an+--     input attachment, a valid descriptor /must/ be bound to the pipeline+--     via a descriptor set+--+-- -   #VUID-vkCmdDraw-OpTypeImage-07468# If any shader executed by this+--     pipeline accesses an @OpTypeImage@ variable with a @Dim@ operand of+--     @SubpassData@, it /must/ be decorated with an @InputAttachmentIndex@+--     that corresponds to a valid input attachment in the current subpass+--+-- -   #VUID-vkCmdDraw-None-07469# Input attachment views accessed in a+--     subpass /must/ be created with the same+--     'Vulkan.Core10.Enums.Format.Format' as the corresponding subpass+--     definition, and be created with a 'Vulkan.Core10.Handles.ImageView'+--     that is compatible with the attachment referenced by the subpass\'+--     @pInputAttachments@[@InputAttachmentIndex@] in the currently bound+--     'Vulkan.Core10.Handles.Framebuffer' as specified by+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#compatibility-inputattachment Fragment Input Attachment Compatibility>+--+-- -   #VUID-vkCmdDraw-None-06537# Memory backing image subresources used+--     as attachments in the current render pass /must/ not be written in+--     any way other than as an attachment by this command+--+-- -   #VUID-vkCmdDraw-None-09000# If a color attachment is written by any+--     prior command in this subpass or by the load, store, or resolve+--     operations for this subpass, it is not in the+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'+--     image layout, and either:+--+--     -   the+--         'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'+--         is set on the currently bound pipeline or+--+--     -   the last call to+--         'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'+--         included+--         'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'+--         and+--+--         -   there is no currently bound graphics pipeline or+--+--         -   the currently bound graphics pipeline was created with+--             'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'+--             it /must/ not be accessed in any way other than as an+--             attachment by this command+--+-- -   #VUID-vkCmdDraw-None-09001# If a depth attachment is written by any+--     prior command in this subpass or by the load, store, or resolve+--     operations for this subpass, it is not in the+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'+--     image layout, and either:+--+--     -   the+--         'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'+--         is set on the currently bound pipeline or+--+--     -   the last call to+--         'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'+--         included+--         'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT'+--         and+--+--         -   there is no currently bound graphics pipeline or+--+--         -   the currently bound graphics pipeline was created with+--             'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'+--             it /must/ not be accessed in any way other than as an+--             attachment by this command+--+-- -   #VUID-vkCmdDraw-None-09002# If a stencil attachment is written by+--     any prior command in this subpass or by the load, store, or resolve+--     operations for this subpass, it is not in the+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'+--     image layout, and either:+--+--     -   the+--         'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'+--         is set on the currently bound pipeline or+--+--     -   the last call to+--         'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'+--         included+--         'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'+--         and+--+--         -   there is no currently bound graphics pipeline or+--+--         -   the currently bound graphics pipeline was created with+--             'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'+--             it /must/ not be accessed in any way other than as an+--             attachment by this command+--+-- -   #VUID-vkCmdDraw-None-09003# If an attachment is written by any prior+--     command in this subpass or by the load, store, or resolve operations+--     for this subpass, it /must/ not be accessed in any way other than as+--     an attachment, storage image, or sampled image by this command+--+-- -   #VUID-vkCmdDraw-None-06539# If any previously recorded command in+--     the current subpass accessed an image subresource used as an+--     attachment in this subpass in any way other than as an attachment,+--     this command /must/ not write to that image subresource as an+--     attachment+--+-- -   #VUID-vkCmdDraw-None-06886# If the current render pass instance uses+--     a depth\/stencil attachment with a read-only layout for the depth+--     aspect,+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-depth-write depth writes>+--     /must/ be disabled+--+-- -   #VUID-vkCmdDraw-None-06887# If the current render pass instance uses+--     a depth\/stencil attachment with a read-only layout for the stencil+--     aspect, both front and back @writeMask@ are not zero, and stencil+--     test is enabled,+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-stencil all stencil ops>+--     /must/ be 'Vulkan.Core10.Enums.StencilOp.STENCIL_OP_KEEP'+--+-- -   #VUID-vkCmdDraw-None-07831# If the bound graphics pipeline state was+--     created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT' dynamic+--     state enabled then 'cmdSetViewport' /must/ have been called in the+--     current command buffer prior to this drawing command+--+-- -   #VUID-vkCmdDraw-None-07832# If the bound graphics pipeline state was+--     created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR' dynamic+--     state enabled then 'cmdSetScissor' /must/ have been called in the+--     current command buffer prior to this drawing command+--+-- -   #VUID-vkCmdDraw-None-07833# If the bound graphics pipeline state was+--     created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_WIDTH' dynamic+--     state enabled then 'cmdSetLineWidth' /must/ have been called in the+--     current command buffer prior to this drawing command+--+-- -   #VUID-vkCmdDraw-None-08617# If a shader object is bound to any+--     graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in 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-sampleLocationsPerPixel-07934# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     state enabled, then the @sampleLocationsPerPixel@ member of+--     @pSampleLocationsInfo@ in the last call to+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ equal the @rasterizationSamples@ member of the+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'+--     structure the bound graphics pipeline has been created with+--+-- -   #VUID-vkCmdDraw-None-07840# If the bound graphics pipeline state was+--     created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic+--     state enabled then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDraw-None-08627# If a shader object is bound to any+--     graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current command buffer set @rasterizerDiscardEnable@ to+--     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDraw-None-07841# If the bound graphics pipeline state was+--     created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRONT_FACE' dynamic+--     state enabled then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDraw-None-08628# If a shader object is bound to any+--     graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current command buffer set @rasterizerDiscardEnable@ to+--     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDraw-None-07843# If the bound graphics pipeline state was+--     created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE'+--     dynamic state enabled then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDraw-None-08629# If a shader object is bound to any+--     graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current command buffer set @rasterizerDiscardEnable@ to+--     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDraw-None-07844# If the bound graphics pipeline state was+--     created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'+--     dynamic state enabled then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDraw-None-08630# If a shader object is bound to any+--     graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current command buffer set @rasterizerDiscardEnable@ to+--     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDraw-None-07845# If the bound graphics pipeline state was+--     created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP'+--     dynamic state enabled then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDraw-None-08631# If a shader object is bound to any+--     graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current command buffer set @rasterizerDiscardEnable@ to+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'+--     in the current command buffer set @depthTestEnable@ to+--     'Vulkan.Core10.FundamentalTypes.TRUE', then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDraw-None-07846# If the bound graphics pipeline state was+--     created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE'+--     dynamic state enabled then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDraw-None-08632# If a shader object is bound to any+--     graphics stage, and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthBounds depthBounds>+--     feature is enabled, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current command buffer set @rasterizerDiscardEnable@ to+--     'Vulkan.Core10.FundamentalTypes.FALSE', then the+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDraw-None-07847# If the bound graphics pipeline state was+--     created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE'+--     dynamic state enabled then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDraw-None-08633# If a shader object is bound to any+--     graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current command buffer set @rasterizerDiscardEnable@ to+--     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDraw-None-07848# If the bound graphics pipeline state was+--     created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP' dynamic+--     state enabled then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDraw-None-08634# If a shader object is bound to any+--     graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current command buffer set @rasterizerDiscardEnable@ to+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'+--     in the current command buffer set @stencilTestEnable@ to+--     'Vulkan.Core10.FundamentalTypes.TRUE', then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDraw-viewportCount-03417# If the bound graphics pipeline+--     state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+--     dynamic state enabled, but not the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'+--     dynamic state enabled, then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the @viewportCount@ parameter of+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--     /must/ match the+--     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@scissorCount@+--     of the pipeline+--+-- -   #VUID-vkCmdDraw-scissorCount-03418# If the bound graphics pipeline+--     state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'+--     dynamic state enabled, but not the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+--     dynamic state enabled, then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the @scissorCount@ parameter of+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'+--     /must/ match the+--     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@viewportCount@+--     of the pipeline+--+-- -   #VUID-vkCmdDraw-viewportCount-03419# If the bound graphics pipeline+--     state was created with both the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'+--     and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+--     dynamic states enabled then both+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--     and+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the @viewportCount@ parameter of+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--     /must/ match the @scissorCount@ parameter of+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'+--+-- -   #VUID-vkCmdDraw-None-08635# If a shader object is bound to any+--     graphics stage, then both+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--     and+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the @viewportCount@ parameter of+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--     /must/ match the @scissorCount@ parameter of+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'+--+-- -   #VUID-vkCmdDraw-viewportCount-04137# If the bound graphics pipeline+--     state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+--     dynamic state enabled, but not the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_NV'+--     dynamic state enabled, then the bound graphics pipeline /must/ have+--     been created with+--     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.PipelineViewportWScalingStateCreateInfoNV'::@viewportCount@+--     greater or equal to the @viewportCount@ parameter in the last call+--     to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- -   #VUID-vkCmdDraw-viewportCount-04138# If the bound graphics pipeline+--     state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+--     and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_NV'+--     dynamic states enabled then the @viewportCount@ parameter in the+--     last call to+--     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV'+--     /must/ be greater than or equal to the @viewportCount@ parameter in+--     the last call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- -   #VUID-vkCmdDraw-None-09232# If 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 @VK_AMD_mixed_attachment_samples@ extension, the+--     @VK_NV_framebuffer_mixed_samples@ extension, or the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--     feature is enabled, then @rasterizationSamples@ for the currently+--     bound graphics pipeline /must/ be the same as the current subpass+--     color and\/or depth\/stencil attachments+--+-- -   #VUID-vkCmdDraw-None-08644# If a shader object is bound to any+--     graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current command buffer set @rasterizerDiscardEnable@ to+--     'Vulkan.Core10.FundamentalTypes.FALSE', and none of the+--     @VK_AMD_mixed_attachment_samples@ extension, the+--     @VK_NV_framebuffer_mixed_samples@ extension, or the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--     feature is enabled, then the most recent call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--     in the current command buffer /must/ have set @rasterizationSamples@+--     to be the same as the number of samples for the current render pass+--     color and\/or depth\/stencil attachments+--+-- -   #VUID-vkCmdDraw-None-08876# If a shader object is bound to any+--     graphics stage, the current render pass instance /must/ have been+--     begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--+-- -   #VUID-vkCmdDraw-imageView-06172# If the current render pass instance+--     was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the @imageView@ member of @pDepthAttachment@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+--     @pDepthAttachment@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL',+--     this command /must/ not write any values to the depth attachment+--+-- -   #VUID-vkCmdDraw-imageView-06173# If the current render pass instance+--     was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the @imageView@ member of @pStencilAttachment@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+--     @pStencilAttachment@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL',+--     this command /must/ not write any values to the stencil attachment+--+-- -   #VUID-vkCmdDraw-imageView-06174# If the current render pass instance+--     was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the @imageView@ member of @pDepthAttachment@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+--     @pDepthAttachment@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL',+--     this command /must/ not write any values to the depth attachment+--+-- -   #VUID-vkCmdDraw-imageView-06175# If the current render pass instance+--     was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the @imageView@ member of @pStencilAttachment@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+--     @pStencilAttachment@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL',+--     this command /must/ not write any values to the stencil attachment+--+-- -   #VUID-vkCmdDraw-imageView-06176# If the current render pass instance+--     was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the @imageView@ member of @pDepthAttachment@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+--     @pDepthAttachment@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL',+--     this command /must/ not write any values to the depth attachment+--+-- -   #VUID-vkCmdDraw-imageView-06177# If the current render pass instance+--     was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the @imageView@ member of @pStencilAttachment@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+--     @pStencilAttachment@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL',+--     this command /must/ not write any values to the stencil attachment+--+-- -   #VUID-vkCmdDraw-viewMask-06178# If the current render pass instance+--     was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the currently bound graphics pipeline /must/ have been created with+--     a+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@viewMask@+--     equal to+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@viewMask@+--+-- -   #VUID-vkCmdDraw-colorAttachmentCount-06179# If the current render+--     pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the currently bound graphics pipeline /must/ have been created with+--     a+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@colorAttachmentCount@+--     equal to+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@+--+-- -   #VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-08910# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>+--     feature is not enabled, and the current render pass instance was+--     begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@+--     greater than @0@, then each element of the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@+--     array with a @imageView@ not equal to+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created+--     with a 'Vulkan.Core10.Enums.Format.Format' equal to the+--     corresponding element of+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@+--     used to create the currently bound graphics pipeline+--+-- -   #VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-08911# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>+--     feature is enabled, and the current render pass instance was begun+--     with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@+--     greater than @0@, then each element of the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@+--     array with a @imageView@ not equal to+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created+--     with a 'Vulkan.Core10.Enums.Format.Format' equal to the+--     corresponding element of+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@+--     used to create the currently bound graphics pipeline, or the+--     corresponding element of+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,+--     if it exists, /must/ be+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'+--+-- -   #VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-08912# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>+--     feature is not enabled, and the current render pass instance was+--     begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@+--     greater than @0@, then each element of the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@+--     array with a @imageView@ equal to+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have the+--     corresponding element of+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@+--     used to create the currently bound pipeline equal to+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'+--+-- -   #VUID-vkCmdDraw-colorAttachmentCount-09362# If the current render+--     pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     with a+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@+--     equal to @1@, there is no shader object bound to any graphics stage,+--     and a color attachment with a resolve mode of+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',+--     each element of the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@+--     array with a @resolveImageView@ not equal to+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created+--     with an image created with a+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@+--     value equal to the+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@+--     value used to create the currently bound graphics pipeline+--+-- -   #VUID-vkCmdDraw-None-09363# If there is no shader object bound to+--     any graphics stage, the current render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     and a+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@+--     equal to @1@, and a color attachment with a resolve mode of+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',+--     each element of the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@+--     array with a @imageView@ not equal to+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created+--     with an image created with a+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@+--     value equal to the+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@+--     value used to create the currently bound graphics pipeline+--+-- -   #VUID-vkCmdDraw-None-09364# If the current render pass instance was+--     begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     there is no shader object bound to any graphics stage, and the+--     currently bound graphics pipeline was created with a non-zero+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@+--     value and with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'+--     dynamic state enabled, then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     /must/ have set the blend enable to+--     'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command+--+-- -   #VUID-vkCmdDraw-None-09365# If the current render pass instance was+--     begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     there is no shader object bound to any graphics stage, and the+--     currently bound graphics pipeline was created with a non-zero+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@+--     value and with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     dynamic state enabled, then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--     /must/ have set @rasterizationSamples@ to+--     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior+--     to this drawing command+--+-- -   #VUID-vkCmdDraw-None-09366# If there is a shader object bound to any+--     graphics stage, and the current render pass includes a color+--     attachment that uses the+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'+--     resolve mode, then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     /must/ have set blend enable to+--     'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command+--+-- -   #VUID-vkCmdDraw-rasterizationSamples-09367# If there is a shader+--     object bound to any graphics stage, and the current render pass+--     includes a color attachment that uses the+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'+--     resolve mode, then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--     /must/ have set @rasterizationSamples@ to+--     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior+--     to this drawing command+--+-- -   #VUID-vkCmdDraw-None-09368# If the current render pass instance was+--     begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     there is no shader object bound to any graphics stage, and the+--     currently bound graphics pipeline was created with a non-zero+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@+--     value and with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'+--     dynamic state enabled, then+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'+--     /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing+--     command+--+-- -   #VUID-vkCmdDraw-None-09369# If the current render pass instance was+--     begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     there is no shader object bound to any graphics stage, and the+--     currently bound graphics pipeline was created with a non-zero+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@+--     value and with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'+--     dynamic state enabled, then+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'+--     /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing+--     command+--+-- -   #VUID-vkCmdDraw-pFragmentSize-09370# If there is a shader object+--     bound to any graphics stage, and the current render pass includes a+--     color attachment that uses the+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'+--     resolve mode, then+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'+--     /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing+--     command+--+-- -   #VUID-vkCmdDraw-pFragmentSize-09371# If there is a shader object+--     bound to any graphics stage, and the current render pass includes a+--     color attachment that uses the+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'+--     resolve mode, then+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'+--     /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing+--     command+--+-- -   #VUID-vkCmdDraw-None-07749# If the bound graphics pipeline state was+--     created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDraw-None-08646# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>+--     feature is enabled on the device, and a shader object is bound to+--     the+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'+--     stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current command buffer set @rasterizerDiscardEnable@ to+--     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDraw-attachmentCount-07750# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'+--     dynamic state enabled then the @attachmentCount@ parameter of+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+--     /must/ be greater than or equal to the+--     'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo'::@attachmentCount@+--     of the currently bound graphics pipeline+--+-- -   #VUID-vkCmdDraw-None-08647# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>+--     feature is enabled on the device, and a shader object is bound to+--     the+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'+--     stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current command buffer set @rasterizerDiscardEnable@ to+--     'Vulkan.Core10.FundamentalTypes.FALSE', then the @attachmentCount@+--     parameter of most recent call to+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+--     in the current command buffer /must/ be greater than or equal to the+--     number of color attachments in the current render pass instance+--+-- -   #VUID-vkCmdDraw-None-07751# If the bound graphics pipeline state was+--     created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command for each discard rectangle in+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.PipelineDiscardRectangleStateCreateInfoEXT'::@discardRectangleCount@+--+-- -   #VUID-vkCmdDraw-None-07880# If the bound graphics pipeline state was+--     created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDraw-rasterizerDiscardEnable-09236# If the+--     @VK_EXT_discard_rectangles@ extension is enabled, and a shader+--     object is bound to any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current command buffer set @rasterizerDiscardEnable@ to+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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+--     current render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the currently bound pipeline was created without a+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+--     or+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+--     structure, and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--     feature is not enabled, and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of+--     @rasterizationSamples@ for the currently bound graphics pipeline+--     /must/ be equal to the sample count used to create+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@+--+-- -   #VUID-vkCmdDraw-multisampledRenderToSingleSampled-07287# If the+--     current render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the currently bound pipeline was created without a+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+--     or+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+--     structure, and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--     feature is not enabled, and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of+--     @rasterizationSamples@ for the currently bound graphics pipeline+--     /must/ be equal to the sample count used to create+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@+--+-- -   #VUID-vkCmdDraw-pNext-07935# If this command has been called inside+--     a render pass instance started with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     and the @pNext@ chain of+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'+--     includes a+--     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'+--     structure with @multisampledRenderToSingleSampledEnable@ equal to+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the value of+--     @rasterizationSamples@ for the currently bound graphics pipeline+--     /must/ be equal to+--     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'::@rasterizationSamples@+--+-- -   #VUID-vkCmdDraw-renderPass-06198# If the current render pass+--     instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the currently bound pipeline /must/ have been created with a+--     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@renderPass@+--     equal to 'Vulkan.Core10.APIConstants.NULL_HANDLE'+--+-- -   #VUID-vkCmdDraw-pColorAttachments-08963# If the current render pass+--     instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     there is a graphics pipeline bound with a fragment shader that+--     statically writes to a color attachment, the color write mask is not+--     zero, color writes are enabled, and the corresponding element of the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments->imageView@+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the+--     corresponding element of+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@+--     used to create the pipeline /must/ not be+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'+--+-- -   #VUID-vkCmdDraw-pDepthAttachment-08964# If the current render pass+--     instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     there is a graphics pipeline bound, depth test is enabled, depth+--     write is enabled, and the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@+--     used to create the pipeline /must/ not be+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'+--+-- -   #VUID-vkCmdDraw-pStencilAttachment-08965# If the current render pass+--     instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     there is a graphics pipeline bound, stencil test is enabled and the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@+--     used to create the pipeline /must/ not be+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'+--+-- -   #VUID-vkCmdDraw-primitivesGeneratedQueryWithRasterizerDiscard-06708#+--     If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithRasterizerDiscard primitivesGeneratedQueryWithRasterizerDiscard>+--     feature is not enabled and the+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'+--     query is active,+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-discard rasterization discard>+--     /must/ not be enabled+--+-- -   #VUID-vkCmdDraw-primitivesGeneratedQueryWithNonZeroStreams-06709# If+--     the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams primitivesGeneratedQueryWithNonZeroStreams>+--     feature is not enabled and the+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'+--     query is active, the bound graphics pipeline /must/ not have been+--     created with a non-zero value in+--     'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT'::@rasterizationStream@+--+-- -   #VUID-vkCmdDraw-None-07619# If the bound graphics pipeline state was+--     created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetTessellationDomainOriginEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDraw-None-07620# If the bound graphics pipeline state was+--     created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDraw-None-09237# If a shader object is bound to the+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'+--     stage, then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetTessellationDomainOriginEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDraw-None-08650# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClamp depthClamp>+--     feature is enabled, and a shader object is bound to any graphics+--     stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current command buffer set @rasterizerDiscardEnable@ to+--     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDraw-None-07621# If the bound graphics pipeline state was+--     created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_POLYGON_MODE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDraw-None-08651# If a shader object is bound to any+--     graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current command buffer set @rasterizerDiscardEnable@ to+--     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDraw-None-07622# If the bound graphics pipeline state was+--     created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDraw-None-08652# If a shader object is bound to any+--     graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current command buffer set @rasterizerDiscardEnable@ to+--     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDraw-None-07623# If the bound graphics pipeline state was+--     created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDraw-None-08653# If a shader object is bound to any+--     graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current command buffer set @rasterizerDiscardEnable@ to+--     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDraw-None-07624# If the bound graphics pipeline state was+--     created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDraw-alphaToCoverageEnable-08919# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT'+--     dynamic state enabled, and @alphaToCoverageEnable@ was+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutput Fragment Output Interface>+--     /must/ contain a variable for the alpha @Component@ word in+--     @Location@ 0 at @Index@ 0+--+-- -   #VUID-vkCmdDraw-None-08654# If a shader object is bound to any+--     graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current command buffer set @rasterizerDiscardEnable@ to+--     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDraw-alphaToCoverageEnable-08920# If a shader object is+--     bound to any graphics stage, and the most recent call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'+--     in the current command buffer set @alphaToCoverageEnable@ to+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutput Fragment Output Interface>+--     /must/ contain a variable for the alpha @Component@ word in+--     @Location@ 0 at @Index@ 0+--+-- -   #VUID-vkCmdDraw-None-07625# If the bound graphics pipeline state was+--     created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToOneEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDraw-None-08655# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-alphaToOne alphaToOne>+--     feature is enabled, and a shader object is bound to any graphics+--     stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current command buffer set @rasterizerDiscardEnable@ to+--     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToOneEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDraw-None-07626# If the bound graphics pipeline state was+--     created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLogicOpEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDraw-None-08656# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>+--     feature is enabled, and a shader object is bound to the+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'+--     stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current command buffer set @rasterizerDiscardEnable@ to+--     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLogicOpEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDraw-None-07627# If the bound graphics pipeline state was+--     created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDraw-None-08657# If a shader object is bound to the+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'+--     stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current command buffer set @rasterizerDiscardEnable@ to+--     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDraw-None-07628# If the bound graphics pipeline state was+--     created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDraw-None-08658# If a shader object is bound to the+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'+--     stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in 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_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_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_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_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_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_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_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDraw-None-08672# If the @VK_EXT_line_rasterization@+--     extension is enabled, and a shader object is bound to any graphics+--     stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in 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_EXT_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdDraw-stippledLineEnable-07496# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--     or+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--     dynamic states enabled, and if the current @stippledLineEnable@+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current+--     @lineRasterizationMode@ state is+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_BRESENHAM_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdDraw-stippledLineEnable-07497# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--     or+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--     dynamic states enabled, and if the current @stippledLineEnable@+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current+--     @lineRasterizationMode@ state is+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdDraw-stippledLineEnable-07498# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--     or+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--     dynamic states enabled, and if the current @stippledLineEnable@+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current+--     @lineRasterizationMode@ state is+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_DEFAULT_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>+--     feature /must/ be enabled and+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@strictLines@+--     /must/ be 'Vulkan.Core10.FundamentalTypes.TRUE'+--+-- -   #VUID-vkCmdDraw-conservativePointAndLineRasterization-07499# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT'+--     dynamic state enabled,+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-conservativePointAndLineRasterization conservativePointAndLineRasterization>+--     is not supported, and the effective primitive topology output by the+--     last pre-rasterization shader stage is a line or point, then the+--     @conservativeRasterizationMode@ set by the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'+--     /must/ be+--     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT'+--+-- -   #VUID-vkCmdDraw-stage-07073# If the currently bound pipeline was+--     created with the+--     'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@+--     member of an element of+--     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pStages@ set+--     to+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT',+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT',+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'+--     or+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT',+--     then+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-mesh-shader Mesh Shader Queries>+--     /must/ not be active+--+-- -   #VUID-vkCmdDraw-None-08877# If the bound graphics pipeline state was+--     created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'+--     dynamic state+--     'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDraw-None-07850# If dynamic state was inherited from+--     'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV',+--     it /must/ be set in the current command buffer prior to this drawing+--     command+--+-- -   #VUID-vkCmdDraw-None-08684# If there is no bound graphics pipeline,+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/+--     have been called in the current command buffer with @pStages@ with+--     an element of+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'+--+-- -   #VUID-vkCmdDraw-None-08685# If there is no bound graphics pipeline,+--     and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>+--     feature is enabled,+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/+--     have been called in the current command buffer with @pStages@ with+--     an element of+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT'+--+-- -   #VUID-vkCmdDraw-None-08686# If there is no bound graphics pipeline,+--     and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>+--     feature is enabled,+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/+--     have been called in the current command buffer with @pStages@ with+--     an element of+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'+--+-- -   #VUID-vkCmdDraw-None-08687# If there is no bound graphics pipeline,+--     and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader>+--     feature is enabled,+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/+--     have been called in the current command buffer with @pStages@ with+--     an element of+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'+--+-- -   #VUID-vkCmdDraw-None-08688# If there is no bound graphics pipeline,+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/+--     have been called in the current command buffer with @pStages@ with+--     an element of+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'+--+-- -   #VUID-vkCmdDraw-None-08689# If there is no bound graphics pipeline,+--     and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>+--     feature is enabled,+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/+--     have been called in the current command buffer with @pStages@ with+--     an element of+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'+--+-- -   #VUID-vkCmdDraw-None-08690# If there is no bound graphics pipeline,+--     and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>+--     feature is enabled,+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/+--     have been called in the current command buffer with @pStages@ with+--     an element of+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'+--+-- -   #VUID-vkCmdDraw-None-08693# If there is no bound graphics pipeline,+--     and at least one of the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>+--     and+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>+--     features is enabled, one of the+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' or+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'+--     stages /must/ have a valid 'Vulkan.Extensions.Handles.ShaderEXT'+--     bound, and the other /must/ have no+--     'Vulkan.Extensions.Handles.ShaderEXT' bound+--+-- -   #VUID-vkCmdDraw-None-08694# If there is no bound graphics pipeline,+--     and both the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>+--     and+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>+--     features are enabled, and a valid+--     'Vulkan.Extensions.Handles.ShaderEXT' is bound the to the+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'+--     stage, and that 'Vulkan.Extensions.Handles.ShaderEXT' was created+--     without the+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_NO_TASK_SHADER_BIT_EXT'+--     flag, a valid 'Vulkan.Extensions.Handles.ShaderEXT' /must/ be bound+--     to the+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'+--     stage+--+-- -   #VUID-vkCmdDraw-None-08695# If there is no bound graphics pipeline,+--     and both the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>+--     and+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>+--     features are enabled, and a valid+--     'Vulkan.Extensions.Handles.ShaderEXT' is bound the to the+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'+--     stage, and that 'Vulkan.Extensions.Handles.ShaderEXT' was created+--     with the+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_NO_TASK_SHADER_BIT_EXT'+--     flag, there /must/ be no 'Vulkan.Extensions.Handles.ShaderEXT' bound+--     to the+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'+--     stage+--+-- -   #VUID-vkCmdDraw-None-08696# If there is no bound graphics pipeline,+--     and a valid 'Vulkan.Extensions.Handles.ShaderEXT' is bound to the+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'+--     stage, there /must/ be no 'Vulkan.Extensions.Handles.ShaderEXT'+--     bound to either the+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'+--     stage or the+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'+--     stage+--+-- -   #VUID-vkCmdDraw-None-08698# If any graphics shader is bound which+--     was created with the+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'+--     flag, then all shaders created with the+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'+--     flag in the same+--     'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call+--     /must/ also be bound+--+-- -   #VUID-vkCmdDraw-None-08699# If any graphics shader is bound which+--     was created with the+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'+--     flag, any stages in between stages whose shaders which did not+--     create a shader with the+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'+--     flag as part of the same+--     'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call+--     /must/ not have any 'Vulkan.Extensions.Handles.ShaderEXT' bound+--+-- -   #VUID-vkCmdDraw-None-08878# All bound graphics shader objects /must/+--     have been created with identical or identically defined push+--     constant ranges+--+-- -   #VUID-vkCmdDraw-None-08879# All bound graphics shader objects /must/+--     have been created with identical or identically defined arrays of+--     descriptor set layouts+--+-- -   #VUID-vkCmdDraw-colorAttachmentCount-09372# If the current render+--     pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     and a+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@+--     equal to @1@, a color attachment with a resolve mode of+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',+--     and a fragment shader is bound, it /must/ not declare the+--     @DepthReplacing@ or @StencilRefReplacingEXT@ execution modes+--+-- -   #VUID-vkCmdDraw-None-08880# If 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-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 not the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'+--     dynamic state enabled, then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'+--     /must/ have been called in the current command buffer prior to this+--     draw command, and the @pStrides@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'+--     /must/ not be @NULL@+--+-- -   #VUID-vkCmdDraw-None-04914# If 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+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdDraw-commandBuffer-parameter# @commandBuffer@ /must/ be a+--     valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdDraw-commandBuffer-recording# @commandBuffer@ /must/ be+--     in the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- -   #VUID-vkCmdDraw-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- -   #VUID-vkCmdDraw-renderpass# This command /must/ only be called+--     inside of a render pass instance+--+-- -   #VUID-vkCmdDraw-videocoding# This command /must/ only be called+--     outside of a video coding scope+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Inside                                                                                                                 | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.CommandBuffer'+cmdDraw :: forall io+         . (MonadIO io)+        => -- | @commandBuffer@ is the command buffer into which the command is+           -- recorded.+           CommandBuffer+        -> -- | @vertexCount@ is the number of vertices to draw.+           ("vertexCount" ::: Word32)+        -> -- | @instanceCount@ is the number of instances to draw.+           ("instanceCount" ::: Word32)+        -> -- | @firstVertex@ is the index of the first vertex to draw.+           ("firstVertex" ::: Word32)+        -> -- | @firstInstance@ is the instance ID of the first instance to draw.+           ("firstInstance" ::: Word32)+        -> io ()+cmdDraw commandBuffer+          vertexCount+          instanceCount+          firstVertex+          firstInstance = liftIO $ do+  let vkCmdDrawPtr = pVkCmdDraw (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdDrawPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDraw is null" Nothing Nothing+  let vkCmdDraw' = mkVkCmdDraw vkCmdDrawPtr+  traceAroundEvent "vkCmdDraw" (vkCmdDraw'+                                  (commandBufferHandle (commandBuffer))+                                  (vertexCount)+                                  (instanceCount)+                                  (firstVertex)+                                  (firstInstance))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdDrawIndexed+  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Word32 -> Word32 -> Int32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Word32 -> Word32 -> Int32 -> Word32 -> IO ()++-- | vkCmdDrawIndexed - Draw primitives with indexed vertices+--+-- = Description+--+-- When the command is executed, primitives are assembled using the current+-- primitive topology and @indexCount@ vertices whose indices are retrieved+-- from the index buffer. The index buffer is treated as an array of+-- tightly packed unsigned integers of size defined by the+-- 'Vulkan.Extensions.VK_KHR_maintenance5.cmdBindIndexBuffer2KHR'::@indexType@+-- or the 'cmdBindIndexBuffer'::@indexType@ parameter with which the buffer+-- was bound.+--+-- The first vertex index is at an offset of @firstIndex@ × @indexSize@ ++-- @offset@ within the bound index buffer, where @offset@ is the offset+-- specified by 'cmdBindIndexBuffer' or+-- 'Vulkan.Extensions.VK_KHR_maintenance5.cmdBindIndexBuffer2KHR', and+-- @indexSize@ is the byte size of the type specified by @indexType@.+-- Subsequent index values are retrieved from consecutive locations in the+-- index buffer. Indices are first compared to the primitive restart value,+-- then zero extended to 32 bits (if the @indexType@ is+-- 'Vulkan.Core10.Enums.IndexType.INDEX_TYPE_UINT8_EXT' or+-- 'Vulkan.Core10.Enums.IndexType.INDEX_TYPE_UINT16') and have+-- @vertexOffset@ added to them, before being supplied as the @vertexIndex@+-- value.+--+-- The primitives are drawn @instanceCount@ times with @instanceIndex@+-- starting with @firstInstance@ and increasing sequentially for each+-- instance. The assembled primitives execute the bound graphics pipeline.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdDrawIndexed-magFilter-04553# If a+--     'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or+--     @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and+--     @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE' is+--     used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+--     this command, then the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+--+-- -   #VUID-vkCmdDrawIndexed-mipmapMode-04770# If a+--     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'+--     and @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE'+--     is used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+--     this command, then the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+--+-- -   #VUID-vkCmdDrawIndexed-None-06479# If a+--     'Vulkan.Core10.Handles.ImageView' is sampled with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-depth-compare-operation depth comparison>,+--     the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT'+--+-- -   #VUID-vkCmdDrawIndexed-None-02691# If a+--     'Vulkan.Core10.Handles.ImageView' is accessed using atomic+--     operations as a result of this command, then the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT'+--+-- -   #VUID-vkCmdDrawIndexed-None-07888# If a+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER'+--     descriptor is accessed using atomic operations as a result of this+--     command, then the storage texel buffer’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-buffer-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT'+--+-- -   #VUID-vkCmdDrawIndexed-None-02692# If a+--     'Vulkan.Core10.Handles.ImageView' is sampled with+--     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this+--     command, then the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'+--+-- -   #VUID-vkCmdDrawIndexed-None-02693# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_filter_cubic VK_EXT_filter_cubic>+--     extension is not enabled and any 'Vulkan.Core10.Handles.ImageView'+--     is sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a+--     result of this command, it /must/ not have a+--     'Vulkan.Core10.Enums.ImageViewType.ImageViewType' of+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D',+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE', or+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY'+--+-- -   #VUID-vkCmdDrawIndexed-filterCubic-02694# Any+--     'Vulkan.Core10.Handles.ImageView' being sampled with+--     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this+--     command /must/ have a+--     'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that+--     supports cubic filtering, as specified by+--     'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubic@+--     returned by+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'+--+-- -   #VUID-vkCmdDrawIndexed-filterCubicMinmax-02695# Any+--     'Vulkan.Core10.Handles.ImageView' being sampled with+--     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' with a reduction mode+--     of either+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'+--     or+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'+--     as a result of this command /must/ have a+--     'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that+--     supports cubic filtering together with minmax filtering, as+--     specified by+--     'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubicMinmax@+--     returned by+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'+--+-- -   #VUID-vkCmdDrawIndexed-cubicRangeClamp-09212# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-range-clamp cubicRangeClamp>+--     feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView'+--     being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as+--     a result of this command /must/ not have a+--     'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'::@reductionMode@+--     equal to+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM'+--+-- -   #VUID-vkCmdDrawIndexed-reductionMode-09213# Any+--     'Vulkan.Core10.Handles.ImageView' being sampled with a+--     'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'::@reductionMode@+--     equal to+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM'+--     as a result of this command /must/ sample with+--     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT'+--+-- -   #VUID-vkCmdDrawIndexed-selectableCubicWeights-09214# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-weight-selection selectableCubicWeights>+--     feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView'+--     being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as+--     a result of this command /must/ have+--     'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.SamplerCubicWeightsCreateInfoQCOM'::@cubicWeights@+--     equal to+--     'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM'+--+-- -   #VUID-vkCmdDrawIndexed-flags-02696# Any+--     'Vulkan.Core10.Handles.Image' created with a+--     'Vulkan.Core10.Image.ImageCreateInfo'::@flags@ containing+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_CORNER_SAMPLED_BIT_NV'+--     sampled as a result of this command /must/ only be sampled using a+--     'Vulkan.Core10.Enums.SamplerAddressMode.SamplerAddressMode' of+--     'Vulkan.Core10.Enums.SamplerAddressMode.SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE'+--+-- -   #VUID-vkCmdDrawIndexed-OpTypeImage-07027# For any+--     'Vulkan.Core10.Handles.ImageView' being written as a storage image+--     where the image format field of the @OpTypeImage@ is @Unknown@, the+--     view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'+--+-- -   #VUID-vkCmdDrawIndexed-OpTypeImage-07028# For any+--     'Vulkan.Core10.Handles.ImageView' being read as a storage image+--     where the image format field of the @OpTypeImage@ is @Unknown@, the+--     view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT'+--+-- -   #VUID-vkCmdDrawIndexed-OpTypeImage-07029# For any+--     'Vulkan.Core10.Handles.BufferView' being written as a storage texel+--     buffer where the image format field of the @OpTypeImage@ is+--     @Unknown@, the view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'+--+-- -   #VUID-vkCmdDrawIndexed-OpTypeImage-07030# Any+--     'Vulkan.Core10.Handles.BufferView' being read as a storage texel+--     buffer where the image format field of the @OpTypeImage@ is+--     @Unknown@ then the view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT'+--+-- -   #VUID-vkCmdDrawIndexed-None-08600# For each set /n/ that is+--     statically used by+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,+--     a descriptor set /must/ have been bound to /n/ at the same pipeline+--     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is+--     compatible for set /n/, with the+--     'Vulkan.Core10.Handles.PipelineLayout' or+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to+--     create the current 'Vulkan.Core10.Handles.Pipeline' or+--     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>+--+-- -   #VUID-vkCmdDrawIndexed-None-08601# For each push constant that is+--     statically used by+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,+--     a push constant value /must/ have been set for the same pipeline+--     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is+--     compatible for push constants, with the+--     'Vulkan.Core10.Handles.PipelineLayout' or+--     'Vulkan.Core10.Handles.DescriptorSetLayout' and+--     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to+--     create the current 'Vulkan.Core10.Handles.Pipeline' or+--     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>+--+-- -   #VUID-vkCmdDrawIndexed-maintenance4-08602# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance4 maintenance4>+--     feature is not enabled, then for each push constant that is+--     statically used by+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,+--     a push constant value /must/ have been set for the same pipeline+--     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is+--     compatible for push constants, with the+--     'Vulkan.Core10.Handles.PipelineLayout' or+--     'Vulkan.Core10.Handles.DescriptorSetLayout' and+--     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to+--     create the current 'Vulkan.Core10.Handles.Pipeline' or+--     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>+--+-- -   #VUID-vkCmdDrawIndexed-None-08114# Descriptors in each bound+--     descriptor set, specified via 'cmdBindDescriptorSets', /must/ be+--     valid if they are statically used by the+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+--     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'+--     was not created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDrawIndexed-None-08115# If the descriptors used by the+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+--     were specified via 'cmdBindDescriptorSets', the bound+--     'Vulkan.Core10.Handles.Pipeline' /must/ have been created without+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDrawIndexed-None-08116# Descriptors in bound descriptor+--     buffers, specified via+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',+--     /must/ be valid if they are dynamically used by the+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+--     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'+--     was created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDrawIndexed-None-08604# Descriptors in bound descriptor+--     buffers, specified via+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',+--     /must/ be valid if they are dynamically used by any+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding+--     to the pipeline bind point used by this command+--+-- -   #VUID-vkCmdDrawIndexed-None-08117# If the descriptors used by the+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+--     were specified via+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',+--     the bound 'Vulkan.Core10.Handles.Pipeline' /must/ have been created+--     with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDrawIndexed-None-08119# If a descriptor is dynamically+--     used with a 'Vulkan.Core10.Handles.Pipeline' created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',+--     the descriptor memory /must/ be resident+--+-- -   #VUID-vkCmdDrawIndexed-None-08605# If a descriptor is dynamically+--     used with a 'Vulkan.Extensions.Handles.ShaderEXT' created with a+--     'Vulkan.Core10.Handles.DescriptorSetLayout' that was created with+--     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',+--     the descriptor memory /must/ be resident+--+-- -   #VUID-vkCmdDrawIndexed-None-08606# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>+--     feature is not enabled, a valid pipeline /must/ be bound to the+--     pipeline bind point used by this command+--+-- -   #VUID-vkCmdDrawIndexed-None-08607# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>+--     is enabled, either a valid pipeline /must/ be bound to the pipeline+--     bind point used by this command, or a valid combination of valid and+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be+--     bound to every supported shader stage corresponding to the pipeline+--     bind point used by this command+--+-- -   #VUID-vkCmdDrawIndexed-None-08608# If a pipeline is bound to the+--     pipeline bind point used by this command, there /must/ not have been+--     any calls to dynamic state setting commands for any state not+--     specified as dynamic in the 'Vulkan.Core10.Handles.Pipeline' object+--     bound to the pipeline bind point used by this command, since that+--     pipeline was bound+--+-- -   #VUID-vkCmdDrawIndexed-None-08609# If the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command or any+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding+--     to the pipeline bind point used by this command accesses a+--     'Vulkan.Core10.Handles.Sampler' object that uses unnormalized+--     coordinates, that sampler /must/ not be used to sample from any+--     'Vulkan.Core10.Handles.Image' with a+--     'Vulkan.Core10.Handles.ImageView' of the type+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D',+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE',+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D_ARRAY',+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D_ARRAY' or+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY', in+--     any shader stage+--+-- -   #VUID-vkCmdDrawIndexed-None-08610# If the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command or any+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding+--     to the pipeline bind point used by this command accesses a+--     'Vulkan.Core10.Handles.Sampler' object that uses unnormalized+--     coordinates, that sampler /must/ not be used with any of the SPIR-V+--     @OpImageSample*@ or @OpImageSparseSample*@ instructions with+--     @ImplicitLod@, @Dref@ or @Proj@ in their name, in any shader stage+--+-- -   #VUID-vkCmdDrawIndexed-None-08611# If the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command or any+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding+--     to the pipeline bind point used by this command accesses a+--     'Vulkan.Core10.Handles.Sampler' object that uses unnormalized+--     coordinates, that sampler /must/ not be used with any of the SPIR-V+--     @OpImageSample*@ or @OpImageSparseSample*@ instructions that+--     includes a LOD bias or any offset values, in any shader stage+--+-- -   #VUID-vkCmdDrawIndexed-uniformBuffers-06935# If any stage of the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command accesses a uniform buffer, and that stage+--     was created without enabling either+--     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'+--     or+--     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+--     for @uniformBuffers@, and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+--     feature is not enabled, that stage /must/ not access values outside+--     of the range of the buffer as specified in the descriptor set bound+--     to the same pipeline bind point+--+-- -   #VUID-vkCmdDrawIndexed-None-08612# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+--     feature is not enabled, and any+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding+--     to the pipeline bind point used by this command accesses a uniform+--     buffer, it /must/ not access values outside of the range of the+--     buffer as specified in the descriptor set bound to the same pipeline+--     bind point+--+-- -   #VUID-vkCmdDrawIndexed-storageBuffers-06936# If any stage of the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command accesses a storage buffer, and that stage+--     was created without enabling either+--     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'+--     or+--     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+--     for @storageBuffers@, and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+--     feature is not enabled, that stage /must/ not access values outside+--     of the range of the buffer as specified in the descriptor set bound+--     to the same pipeline bind point+--+-- -   #VUID-vkCmdDrawIndexed-None-08613# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+--     feature is not enabled, and any+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding+--     to the pipeline bind point used by this command accesses a storage+--     buffer, it /must/ not access values outside of the range of the+--     buffer as specified in the descriptor set bound to the same pipeline+--     bind point+--+-- -   #VUID-vkCmdDrawIndexed-commandBuffer-02707# If @commandBuffer@ is an+--     unprotected command buffer and+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+--     is not supported, any resource accessed by+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding bound shaders>+--     /must/ not be a protected resource+--+-- -   #VUID-vkCmdDrawIndexed-None-06550# If+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>+--     accesses a 'Vulkan.Core10.Handles.Sampler' or+--     'Vulkan.Core10.Handles.ImageView' object that enables+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,+--     that object /must/ only be used with @OpImageSample*@ or+--     @OpImageSparseSample*@ instructions+--+-- -   #VUID-vkCmdDrawIndexed-ConstOffset-06551# If+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>+--     accesses a 'Vulkan.Core10.Handles.Sampler' or+--     'Vulkan.Core10.Handles.ImageView' object that enables+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,+--     that object /must/ not use the @ConstOffset@ and @Offset@ operands+--+-- -   #VUID-vkCmdDrawIndexed-viewType-07752# If a+--     'Vulkan.Core10.Handles.ImageView' is accessed as a result of this+--     command, then the image view’s @viewType@ /must/ match the @Dim@+--     operand of the @OpTypeImage@ as described in+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-operation-validation ???>+--+-- -   #VUID-vkCmdDrawIndexed-format-07753# If a+--     'Vulkan.Core10.Handles.ImageView' is accessed as a result of this+--     command, then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-numericformat numeric type>+--     of the image view’s @format@ and the @Sampled@ @Type@ operand of the+--     @OpTypeImage@ /must/ match+--+-- -   #VUID-vkCmdDrawIndexed-OpImageWrite-08795# If a+--     'Vulkan.Core10.Handles.ImageView' created with a format other than+--     'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using+--     @OpImageWrite@ as a result of this command, then the @Type@ of the+--     @Texel@ operand of that instruction /must/ have at least as many+--     components as the image view’s format+--+-- -   #VUID-vkCmdDrawIndexed-OpImageWrite-08796# If a+--     'Vulkan.Core10.Handles.ImageView' created with the format+--     'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using+--     @OpImageWrite@ as a result of this command, then the @Type@ of the+--     @Texel@ operand of that instruction /must/ have four components+--+-- -   #VUID-vkCmdDrawIndexed-OpImageWrite-04469# If a+--     'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@+--     as a result of this command, then the @Type@ of the @Texel@ operand+--     of that instruction /must/ have at least as many components as the+--     buffer view’s format+--+-- -   #VUID-vkCmdDrawIndexed-SampledType-04470# If a+--     'Vulkan.Core10.Handles.ImageView' with a+--     'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component+--     width is accessed as a result of this command, the @SampledType@ of+--     the @OpTypeImage@ operand of that instruction /must/ have a @Width@+--     of 64+--+-- -   #VUID-vkCmdDrawIndexed-SampledType-04471# If a+--     'Vulkan.Core10.Handles.ImageView' with a+--     'Vulkan.Core10.Enums.Format.Format' that has a component width less+--     than 64-bit is accessed as a result of this command, the+--     @SampledType@ of the @OpTypeImage@ operand of that instruction+--     /must/ have a @Width@ of 32+--+-- -   #VUID-vkCmdDrawIndexed-SampledType-04472# If a+--     'Vulkan.Core10.Handles.BufferView' with a+--     'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component+--     width is accessed as a result of this command, the @SampledType@ of+--     the @OpTypeImage@ operand of that instruction /must/ have a @Width@+--     of 64+--+-- -   #VUID-vkCmdDrawIndexed-SampledType-04473# If a+--     'Vulkan.Core10.Handles.BufferView' with a+--     'Vulkan.Core10.Enums.Format.Format' that has a component width less+--     than 64-bit is accessed as a result of this command, the+--     @SampledType@ of the @OpTypeImage@ operand of that instruction+--     /must/ have a @Width@ of 32+--+-- -   #VUID-vkCmdDrawIndexed-sparseImageInt64Atomics-04474# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>+--     feature is not enabled, 'Vulkan.Core10.Handles.Image' objects+--     created with the+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_RESIDENCY_BIT'+--     flag /must/ not be accessed by atomic instructions through an+--     @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this+--     command+--+-- -   #VUID-vkCmdDrawIndexed-sparseImageInt64Atomics-04475# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>+--     feature is not enabled, 'Vulkan.Core10.Handles.Buffer' objects+--     created with the+--     'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_SPARSE_RESIDENCY_BIT'+--     flag /must/ not be accessed by atomic instructions through an+--     @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this+--     command+--+-- -   #VUID-vkCmdDrawIndexed-OpImageWeightedSampleQCOM-06971# If+--     @OpImageWeightedSampleQCOM@ is used to sample a+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then+--     the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM'+--+-- -   #VUID-vkCmdDrawIndexed-OpImageWeightedSampleQCOM-06972# If+--     @OpImageWeightedSampleQCOM@ uses a 'Vulkan.Core10.Handles.ImageView'+--     as a sample weight image as a result of this command, then the image+--     view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM'+--+-- -   #VUID-vkCmdDrawIndexed-OpImageBoxFilterQCOM-06973# If+--     @OpImageBoxFilterQCOM@ is used to sample a+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then+--     the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM'+--+-- -   #VUID-vkCmdDrawIndexed-OpImageBlockMatchSSDQCOM-06974# If+--     @OpImageBlockMatchSSDQCOM@ is used to read from an+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then+--     the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- -   #VUID-vkCmdDrawIndexed-OpImageBlockMatchSADQCOM-06975# If+--     @OpImageBlockMatchSADQCOM@ is used to read from an+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then+--     the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- -   #VUID-vkCmdDrawIndexed-OpImageBlockMatchSADQCOM-06976# If+--     @OpImageBlockMatchSADQCOM@ or OpImageBlockMatchSSDQCOM is used to+--     read from a reference image as result of this command, then the+--     specified reference coordinates /must/ not fail+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation integer texel coordinate validation>+--+-- -   #VUID-vkCmdDrawIndexed-OpImageWeightedSampleQCOM-06977# If+--     @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,+--     @OpImageBlockMatchWindowSSDQCOM@, @OpImageBlockMatchWindowSADQCOM@,+--     @OpImageBlockMatchGatherSSDQCOM@, @OpImageBlockMatchGatherSADQCOM@,+--     @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a+--     'Vulkan.Core10.Handles.Sampler' as a result of this command, then+--     the sampler /must/ have been created with+--     'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'+--+-- -   #VUID-vkCmdDrawIndexed-OpImageWeightedSampleQCOM-06978# If any+--     command other than @OpImageWeightedSampleQCOM@,+--     @OpImageBoxFilterQCOM@, @OpImageBlockMatchWindowSSDQCOM@,+--     @OpImageBlockMatchWindowSADQCOM@, @OpImageBlockMatchGatherSSDQCOM@,+--     @OpImageBlockMatchGatherSADQCOM@, @OpImageBlockMatchSSDQCOM@, or+--     @OpImageBlockMatchSADQCOM@ uses a 'Vulkan.Core10.Handles.Sampler' as+--     a result of this command, then the sampler /must/ not have been+--     created with+--     'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'+--+-- -   #VUID-vkCmdDrawIndexed-OpImageBlockMatchWindow-09215# If a+--     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@+--     instruction is used to read from an+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then+--     the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- -   #VUID-vkCmdDrawIndexed-OpImageBlockMatchWindow-09216# If a+--     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@+--     instruction is used to read from an+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then+--     the image view’s format /must/ be a single-component format.+--+-- -   #VUID-vkCmdDrawIndexed-OpImageBlockMatchWindow-09217# If a+--     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@+--     read from a reference image as result of this command, then the+--     specified reference coordinates /must/ not fail+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation integer texel coordinate validation>+--+-- -   #VUID-vkCmdDrawIndexed-None-07288# Any shader invocation executed by+--     this command /must/+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-termination terminate>+--+-- -   #VUID-vkCmdDrawIndexed-renderPass-02684# The current render pass+--     /must/ be+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-compatibility compatible>+--     with the @renderPass@ member of the+--     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo' structure+--     specified when creating the 'Vulkan.Core10.Handles.Pipeline' bound+--     to+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'+--+-- -   #VUID-vkCmdDrawIndexed-subpass-02685# The subpass index of the+--     current render pass /must/ be equal to the @subpass@ member of the+--     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo' structure+--     specified when creating the 'Vulkan.Core10.Handles.Pipeline' bound+--     to+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'+--+-- -   #VUID-vkCmdDrawIndexed-None-07748# If any shader statically accesses+--     an input attachment, a valid descriptor /must/ be bound to the+--     pipeline via a descriptor set+--+-- -   #VUID-vkCmdDrawIndexed-OpTypeImage-07468# If any shader executed by+--     this pipeline accesses an @OpTypeImage@ variable with a @Dim@+--     operand of @SubpassData@, it /must/ be decorated with an+--     @InputAttachmentIndex@ that corresponds to a valid input attachment+--     in the current subpass+--+-- -   #VUID-vkCmdDrawIndexed-None-07469# Input attachment views accessed+--     in a subpass /must/ be created with the same+--     'Vulkan.Core10.Enums.Format.Format' as the corresponding subpass+--     definition, and be created with a 'Vulkan.Core10.Handles.ImageView'+--     that is compatible with the attachment referenced by the subpass\'+--     @pInputAttachments@[@InputAttachmentIndex@] in the currently bound+--     'Vulkan.Core10.Handles.Framebuffer' as specified by+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#compatibility-inputattachment Fragment Input Attachment Compatibility>+--+-- -   #VUID-vkCmdDrawIndexed-None-06537# Memory backing image subresources+--     used as attachments in the current render pass /must/ not be written+--     in any way other than as an attachment by this command+--+-- -   #VUID-vkCmdDrawIndexed-None-09000# If a color attachment is written+--     by any prior command in this subpass or by the load, store, or+--     resolve operations for this subpass, it is not in the+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'+--     image layout, and either:+--+--     -   the+--         'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'+--         is set on the currently bound pipeline or+--+--     -   the last call to+--         'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'+--         included+--         'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'+--         and+--+--         -   there is no currently bound graphics pipeline or+--+--         -   the currently bound graphics pipeline was created with+--             'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'+--             it /must/ not be accessed in any way other than as an+--             attachment by this command+--+-- -   #VUID-vkCmdDrawIndexed-None-09001# If a depth attachment is written+--     by any prior command in this subpass or by the load, store, or+--     resolve operations for this subpass, it is not in the+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'+--     image layout, and either:+--+--     -   the+--         'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'+--         is set on the currently bound pipeline or+--+--     -   the last call to+--         'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'+--         included+--         'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT'+--         and+--+--         -   there is no currently bound graphics pipeline or+--+--         -   the currently bound graphics pipeline was created with+--             'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'+--             it /must/ not be accessed in any way other than as an+--             attachment by this command+--+-- -   #VUID-vkCmdDrawIndexed-None-09002# If a stencil attachment is+--     written by any prior command in this subpass or by the load, store,+--     or resolve operations for this subpass, it is not in the+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'+--     image layout, and either:+--+--     -   the+--         'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'+--         is set on the currently bound pipeline or+--+--     -   the last call to+--         'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'+--         included+--         'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'+--         and+--+--         -   there is no currently bound graphics pipeline or+--+--         -   the currently bound graphics pipeline was created with+--             'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'+--             it /must/ not be accessed in any way other than as an+--             attachment by this command+--+-- -   #VUID-vkCmdDrawIndexed-None-09003# If an attachment is written by+--     any prior command in this subpass or by the load, store, or resolve+--     operations for this subpass, it /must/ not be accessed in any way+--     other than as an attachment, storage image, or sampled image by this+--     command+--+-- -   #VUID-vkCmdDrawIndexed-None-06539# If any previously recorded+--     command in the current subpass accessed an image subresource used as+--     an attachment in this subpass in any way other than as an+--     attachment, this command /must/ not write to that image subresource+--     as an attachment+--+-- -   #VUID-vkCmdDrawIndexed-None-06886# If the current render pass+--     instance uses a depth\/stencil attachment with a read-only layout+--     for the depth aspect,+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-depth-write depth writes>+--     /must/ be disabled+--+-- -   #VUID-vkCmdDrawIndexed-None-06887# If the current render pass+--     instance uses a depth\/stencil attachment with a read-only layout+--     for the stencil aspect, both front and back @writeMask@ are not+--     zero, and stencil test is enabled,+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-stencil all stencil ops>+--     /must/ be 'Vulkan.Core10.Enums.StencilOp.STENCIL_OP_KEEP'+--+-- -   #VUID-vkCmdDrawIndexed-None-07831# If the bound graphics pipeline+--     state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT' dynamic+--     state enabled then 'cmdSetViewport' /must/ have been called in the+--     current command buffer prior to this drawing command+--+-- -   #VUID-vkCmdDrawIndexed-None-07832# If the bound graphics pipeline+--     state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR' dynamic+--     state enabled then 'cmdSetScissor' /must/ have been called in the+--     current command buffer prior to this drawing command+--+-- -   #VUID-vkCmdDrawIndexed-None-07833# If the bound graphics pipeline+--     state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_WIDTH' dynamic+--     state enabled then 'cmdSetLineWidth' /must/ have been called in the+--     current command buffer prior to this drawing command+--+-- -   #VUID-vkCmdDrawIndexed-None-08617# If a shader object is bound to+--     any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in 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-sampleLocationsPerPixel-07934# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     state enabled, then the @sampleLocationsPerPixel@ member of+--     @pSampleLocationsInfo@ in the last call to+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ equal the @rasterizationSamples@ member of the+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'+--     structure the bound graphics pipeline has been created with+--+-- -   #VUID-vkCmdDrawIndexed-None-07840# If the bound graphics pipeline+--     state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic+--     state enabled then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexed-None-08627# If a shader object is bound to+--     any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current command buffer set @rasterizerDiscardEnable@ to+--     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexed-None-07841# If the bound graphics pipeline+--     state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRONT_FACE' dynamic+--     state enabled then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexed-None-08628# If a shader object is bound to+--     any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current command buffer set @rasterizerDiscardEnable@ to+--     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexed-None-07843# If the bound graphics pipeline+--     state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE'+--     dynamic state enabled then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexed-None-08629# If a shader object is bound to+--     any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current command buffer set @rasterizerDiscardEnable@ to+--     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexed-None-07844# If the bound graphics pipeline+--     state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'+--     dynamic state enabled then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexed-None-08630# If a shader object is bound to+--     any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current command buffer set @rasterizerDiscardEnable@ to+--     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexed-None-07845# If the bound graphics pipeline+--     state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP'+--     dynamic state enabled then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexed-None-08631# If a shader object is bound to+--     any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current command buffer set @rasterizerDiscardEnable@ to+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'+--     in the current command buffer set @depthTestEnable@ to+--     'Vulkan.Core10.FundamentalTypes.TRUE', then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexed-None-07846# If the bound graphics pipeline+--     state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE'+--     dynamic state enabled then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexed-None-08632# If a shader object is bound to+--     any graphics stage, and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthBounds depthBounds>+--     feature is enabled, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current command buffer set @rasterizerDiscardEnable@ to+--     'Vulkan.Core10.FundamentalTypes.FALSE', then the+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexed-None-07847# If the bound graphics pipeline+--     state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE'+--     dynamic state enabled then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexed-None-08633# If a shader object is bound to+--     any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current command buffer set @rasterizerDiscardEnable@ to+--     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexed-None-07848# If the bound graphics pipeline+--     state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP' dynamic+--     state enabled then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexed-None-08634# If a shader object is bound to+--     any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current command buffer set @rasterizerDiscardEnable@ to+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'+--     in the current command buffer set @stencilTestEnable@ to+--     'Vulkan.Core10.FundamentalTypes.TRUE', then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexed-viewportCount-03417# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+--     dynamic state enabled, but not the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'+--     dynamic state enabled, then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the @viewportCount@ parameter of+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--     /must/ match the+--     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@scissorCount@+--     of the pipeline+--+-- -   #VUID-vkCmdDrawIndexed-scissorCount-03418# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'+--     dynamic state enabled, but not the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+--     dynamic state enabled, then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the @scissorCount@ parameter of+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'+--     /must/ match the+--     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@viewportCount@+--     of the pipeline+--+-- -   #VUID-vkCmdDrawIndexed-viewportCount-03419# If the bound graphics+--     pipeline state was created with both the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'+--     and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+--     dynamic states enabled then both+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--     and+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the @viewportCount@ parameter of+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--     /must/ match the @scissorCount@ parameter of+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'+--+-- -   #VUID-vkCmdDrawIndexed-None-08635# If a shader object is bound to+--     any graphics stage, then both+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--     and+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the @viewportCount@ parameter of+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--     /must/ match the @scissorCount@ parameter of+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'+--+-- -   #VUID-vkCmdDrawIndexed-viewportCount-04137# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+--     dynamic state enabled, but not the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_NV'+--     dynamic state enabled, then the bound graphics pipeline /must/ have+--     been created with+--     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.PipelineViewportWScalingStateCreateInfoNV'::@viewportCount@+--     greater or equal to the @viewportCount@ parameter in the last call+--     to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- -   #VUID-vkCmdDrawIndexed-viewportCount-04138# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+--     and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_NV'+--     dynamic states enabled then the @viewportCount@ parameter in the+--     last call to+--     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV'+--     /must/ be greater than or equal to the @viewportCount@ parameter in+--     the last call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- -   #VUID-vkCmdDrawIndexed-None-09232# If 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 @VK_AMD_mixed_attachment_samples@ extension, the+--     @VK_NV_framebuffer_mixed_samples@ extension, or the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--     feature is enabled, then @rasterizationSamples@ for the currently+--     bound graphics pipeline /must/ be the same as the current subpass+--     color and\/or depth\/stencil attachments+--+-- -   #VUID-vkCmdDrawIndexed-None-08644# If a shader object is bound to+--     any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current command buffer set @rasterizerDiscardEnable@ to+--     'Vulkan.Core10.FundamentalTypes.FALSE', and none of the+--     @VK_AMD_mixed_attachment_samples@ extension, the+--     @VK_NV_framebuffer_mixed_samples@ extension, or the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--     feature is enabled, then the most recent call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--     in the current command buffer /must/ have set @rasterizationSamples@+--     to be the same as the number of samples for the current render pass+--     color and\/or depth\/stencil attachments+--+-- -   #VUID-vkCmdDrawIndexed-None-08876# If a shader object is bound to+--     any graphics stage, the current render pass instance /must/ have+--     been begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--+-- -   #VUID-vkCmdDrawIndexed-imageView-06172# If the current render pass+--     instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the @imageView@ member of @pDepthAttachment@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+--     @pDepthAttachment@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL',+--     this command /must/ not write any values to the depth attachment+--+-- -   #VUID-vkCmdDrawIndexed-imageView-06173# If the current render pass+--     instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the @imageView@ member of @pStencilAttachment@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+--     @pStencilAttachment@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL',+--     this command /must/ not write any values to the stencil attachment+--+-- -   #VUID-vkCmdDrawIndexed-imageView-06174# If the current render pass+--     instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the @imageView@ member of @pDepthAttachment@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+--     @pDepthAttachment@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL',+--     this command /must/ not write any values to the depth attachment+--+-- -   #VUID-vkCmdDrawIndexed-imageView-06175# If the current render pass+--     instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the @imageView@ member of @pStencilAttachment@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+--     @pStencilAttachment@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL',+--     this command /must/ not write any values to the stencil attachment+--+-- -   #VUID-vkCmdDrawIndexed-imageView-06176# If the current render pass+--     instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the @imageView@ member of @pDepthAttachment@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+--     @pDepthAttachment@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL',+--     this command /must/ not write any values to the depth attachment+--+-- -   #VUID-vkCmdDrawIndexed-imageView-06177# If the current render pass+--     instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the @imageView@ member of @pStencilAttachment@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+--     @pStencilAttachment@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL',+--     this command /must/ not write any values to the stencil attachment+--+-- -   #VUID-vkCmdDrawIndexed-viewMask-06178# If the current render pass+--     instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the currently bound graphics pipeline /must/ have been created with+--     a+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@viewMask@+--     equal to+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@viewMask@+--+-- -   #VUID-vkCmdDrawIndexed-colorAttachmentCount-06179# If the current+--     render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the currently bound graphics pipeline /must/ have been created with+--     a+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@colorAttachmentCount@+--     equal to+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@+--+-- -   #VUID-vkCmdDrawIndexed-dynamicRenderingUnusedAttachments-08910# If+--     the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>+--     feature is not enabled, and the current render pass instance was+--     begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@+--     greater than @0@, then each element of the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@+--     array with a @imageView@ not equal to+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created+--     with a 'Vulkan.Core10.Enums.Format.Format' equal to the+--     corresponding element of+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@+--     used to create the currently bound graphics pipeline+--+-- -   #VUID-vkCmdDrawIndexed-dynamicRenderingUnusedAttachments-08911# If+--     the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>+--     feature is enabled, and the current render pass instance was begun+--     with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@+--     greater than @0@, then each element of the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@+--     array with a @imageView@ not equal to+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created+--     with a 'Vulkan.Core10.Enums.Format.Format' equal to the+--     corresponding element of+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@+--     used to create the currently bound graphics pipeline, or the+--     corresponding element of+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,+--     if it exists, /must/ be+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'+--+-- -   #VUID-vkCmdDrawIndexed-dynamicRenderingUnusedAttachments-08912# If+--     the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>+--     feature is not enabled, and the current render pass instance was+--     begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@+--     greater than @0@, then each element of the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@+--     array with a @imageView@ equal to+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have the+--     corresponding element of+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@+--     used to create the currently bound pipeline equal to+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'+--+-- -   #VUID-vkCmdDrawIndexed-colorAttachmentCount-09362# If the current+--     render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     with a+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@+--     equal to @1@, there is no shader object bound to any graphics stage,+--     and a color attachment with a resolve mode of+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',+--     each element of the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@+--     array with a @resolveImageView@ not equal to+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created+--     with an image created with a+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@+--     value equal to the+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@+--     value used to create the currently bound graphics pipeline+--+-- -   #VUID-vkCmdDrawIndexed-None-09363# If there is no shader object+--     bound to any graphics stage, the current render pass instance was+--     begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     and a+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@+--     equal to @1@, and a color attachment with a resolve mode of+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',+--     each element of the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@+--     array with a @imageView@ not equal to+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created+--     with an image created with a+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@+--     value equal to the+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@+--     value used to create the currently bound graphics pipeline+--+-- -   #VUID-vkCmdDrawIndexed-None-09364# If the current render pass+--     instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     there is no shader object bound to any graphics stage, and the+--     currently bound graphics pipeline was created with a non-zero+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@+--     value and with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'+--     dynamic state enabled, then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     /must/ have set the blend enable to+--     'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command+--+-- -   #VUID-vkCmdDrawIndexed-None-09365# If the current render pass+--     instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     there is no shader object bound to any graphics stage, and the+--     currently bound graphics pipeline was created with a non-zero+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@+--     value and with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     dynamic state enabled, then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--     /must/ have set @rasterizationSamples@ to+--     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior+--     to this drawing command+--+-- -   #VUID-vkCmdDrawIndexed-None-09366# If there is a shader object bound+--     to any graphics stage, and the current render pass includes a color+--     attachment that uses the+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'+--     resolve mode, then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     /must/ have set blend enable to+--     'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command+--+-- -   #VUID-vkCmdDrawIndexed-rasterizationSamples-09367# If there is a+--     shader object bound to any graphics stage, and the current render+--     pass includes a color attachment that uses the+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'+--     resolve mode, then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--     /must/ have set @rasterizationSamples@ to+--     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior+--     to this drawing command+--+-- -   #VUID-vkCmdDrawIndexed-None-09368# If the current render pass+--     instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     there is no shader object bound to any graphics stage, and the+--     currently bound graphics pipeline was created with a non-zero+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@+--     value and with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'+--     dynamic state enabled, then+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'+--     /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing+--     command+--+-- -   #VUID-vkCmdDrawIndexed-None-09369# If the current render pass+--     instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     there is no shader object bound to any graphics stage, and the+--     currently bound graphics pipeline was created with a non-zero+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@+--     value and with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'+--     dynamic state enabled, then+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'+--     /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing+--     command+--+-- -   #VUID-vkCmdDrawIndexed-pFragmentSize-09370# If there is a shader+--     object bound to any graphics stage, and the current render pass+--     includes a color attachment that uses the+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'+--     resolve mode, then+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'+--     /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing+--     command+--+-- -   #VUID-vkCmdDrawIndexed-pFragmentSize-09371# If there is a shader+--     object bound to any graphics stage, and the current render pass+--     includes a color attachment that uses the+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'+--     resolve mode, then+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'+--     /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing+--     command+--+-- -   #VUID-vkCmdDrawIndexed-None-07749# If the bound graphics pipeline+--     state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexed-None-08646# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>+--     feature is enabled on the device, and a shader object is bound to+--     the+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'+--     stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current command buffer set @rasterizerDiscardEnable@ to+--     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexed-attachmentCount-07750# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'+--     dynamic state enabled then the @attachmentCount@ parameter of+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+--     /must/ be greater than or equal to the+--     'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo'::@attachmentCount@+--     of the currently bound graphics pipeline+--+-- -   #VUID-vkCmdDrawIndexed-None-08647# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>+--     feature is enabled on the device, and a shader object is bound to+--     the+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'+--     stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current command buffer set @rasterizerDiscardEnable@ to+--     'Vulkan.Core10.FundamentalTypes.FALSE', then the @attachmentCount@+--     parameter of most recent call to+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+--     in the current command buffer /must/ be greater than or equal to the+--     number of color attachments in the current render pass instance+--+-- -   #VUID-vkCmdDrawIndexed-None-07751# If the bound graphics pipeline+--     state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command for each discard rectangle in+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.PipelineDiscardRectangleStateCreateInfoEXT'::@discardRectangleCount@+--+-- -   #VUID-vkCmdDrawIndexed-None-07880# If the bound graphics pipeline+--     state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexed-rasterizerDiscardEnable-09236# If the+--     @VK_EXT_discard_rectangles@ extension is enabled, and a shader+--     object is bound to any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current command buffer set @rasterizerDiscardEnable@ to+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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 current render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the currently bound pipeline was created without a+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+--     or+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+--     structure, and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--     feature is not enabled, and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of+--     @rasterizationSamples@ for the currently bound graphics pipeline+--     /must/ be equal to the sample count used to create+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@+--+-- -   #VUID-vkCmdDrawIndexed-multisampledRenderToSingleSampled-07287# If+--     the current render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the currently bound pipeline was created without a+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+--     or+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+--     structure, and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--     feature is not enabled, and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of+--     @rasterizationSamples@ for the currently bound graphics pipeline+--     /must/ be equal to the sample count used to create+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@+--+-- -   #VUID-vkCmdDrawIndexed-pNext-07935# If this command has been called+--     inside a render pass instance started with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     and the @pNext@ chain of+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'+--     includes a+--     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'+--     structure with @multisampledRenderToSingleSampledEnable@ equal to+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the value of+--     @rasterizationSamples@ for the currently bound graphics pipeline+--     /must/ be equal to+--     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'::@rasterizationSamples@+--+-- -   #VUID-vkCmdDrawIndexed-renderPass-06198# If the current render pass+--     instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the currently bound pipeline /must/ have been created with a+--     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@renderPass@+--     equal to 'Vulkan.Core10.APIConstants.NULL_HANDLE'+--+-- -   #VUID-vkCmdDrawIndexed-pColorAttachments-08963# If the current+--     render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     there is a graphics pipeline bound with a fragment shader that+--     statically writes to a color attachment, the color write mask is not+--     zero, color writes are enabled, and the corresponding element of the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments->imageView@+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the+--     corresponding element of+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@+--     used to create the pipeline /must/ not be+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'+--+-- -   #VUID-vkCmdDrawIndexed-pDepthAttachment-08964# If the current render+--     pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     there is a graphics pipeline bound, depth test is enabled, depth+--     write is enabled, and the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@+--     used to create the pipeline /must/ not be+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'+--+-- -   #VUID-vkCmdDrawIndexed-pStencilAttachment-08965# If the current+--     render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     there is a graphics pipeline bound, stencil test is enabled and the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@+--     used to create the pipeline /must/ not be+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'+--+-- -   #VUID-vkCmdDrawIndexed-primitivesGeneratedQueryWithRasterizerDiscard-06708#+--     If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithRasterizerDiscard primitivesGeneratedQueryWithRasterizerDiscard>+--     feature is not enabled and the+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'+--     query is active,+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-discard rasterization discard>+--     /must/ not be enabled+--+-- -   #VUID-vkCmdDrawIndexed-primitivesGeneratedQueryWithNonZeroStreams-06709#+--     If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams primitivesGeneratedQueryWithNonZeroStreams>+--     feature is not enabled and the+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'+--     query is active, the bound graphics pipeline /must/ not have been+--     created with a non-zero value in+--     'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT'::@rasterizationStream@+--+-- -   #VUID-vkCmdDrawIndexed-None-07619# If the bound graphics pipeline+--     state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetTessellationDomainOriginEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexed-None-07620# If the bound graphics pipeline+--     state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexed-None-09237# If a shader object is bound to+--     the+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'+--     stage, then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetTessellationDomainOriginEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexed-None-08650# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClamp depthClamp>+--     feature is enabled, and a shader object is bound to any graphics+--     stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current command buffer set @rasterizerDiscardEnable@ to+--     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexed-None-07621# If the bound graphics pipeline+--     state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_POLYGON_MODE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexed-None-08651# If a shader object is bound to+--     any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current command buffer set @rasterizerDiscardEnable@ to+--     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexed-None-07622# If the bound graphics pipeline+--     state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexed-None-08652# If a shader object is bound to+--     any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current command buffer set @rasterizerDiscardEnable@ to+--     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexed-None-07623# If the bound graphics pipeline+--     state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexed-None-08653# If a shader object is bound to+--     any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current command buffer set @rasterizerDiscardEnable@ to+--     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexed-None-07624# If the bound graphics pipeline+--     state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexed-alphaToCoverageEnable-08919# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT'+--     dynamic state enabled, and @alphaToCoverageEnable@ was+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutput Fragment Output Interface>+--     /must/ contain a variable for the alpha @Component@ word in+--     @Location@ 0 at @Index@ 0+--+-- -   #VUID-vkCmdDrawIndexed-None-08654# If a shader object is bound to+--     any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current command buffer set @rasterizerDiscardEnable@ to+--     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexed-alphaToCoverageEnable-08920# If a shader+--     object is bound to any graphics stage, and the most recent call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'+--     in the current command buffer set @alphaToCoverageEnable@ to+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutput Fragment Output Interface>+--     /must/ contain a variable for the alpha @Component@ word in+--     @Location@ 0 at @Index@ 0+--+-- -   #VUID-vkCmdDrawIndexed-None-07625# If the bound graphics pipeline+--     state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToOneEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexed-None-08655# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-alphaToOne alphaToOne>+--     feature is enabled, and a shader object is bound to any graphics+--     stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current command buffer set @rasterizerDiscardEnable@ to+--     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToOneEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexed-None-07626# If the bound graphics pipeline+--     state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLogicOpEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexed-None-08656# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>+--     feature is enabled, and a shader object is bound to the+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'+--     stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current command buffer set @rasterizerDiscardEnable@ to+--     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLogicOpEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexed-None-07627# If the bound graphics pipeline+--     state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexed-None-08657# If a shader object is bound to+--     the+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'+--     stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current command buffer set @rasterizerDiscardEnable@ to+--     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexed-None-07628# If the bound graphics pipeline+--     state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexed-None-08658# If a shader object is bound to+--     the+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'+--     stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in 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_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_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_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_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_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_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_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexed-None-08672# If the+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader+--     object is bound to any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in 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_EXT_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdDrawIndexed-stippledLineEnable-07496# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--     or+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--     dynamic states enabled, and if the current @stippledLineEnable@+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current+--     @lineRasterizationMode@ state is+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_BRESENHAM_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdDrawIndexed-stippledLineEnable-07497# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--     or+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--     dynamic states enabled, and if the current @stippledLineEnable@+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current+--     @lineRasterizationMode@ state is+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdDrawIndexed-stippledLineEnable-07498# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--     or+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--     dynamic states enabled, and if the current @stippledLineEnable@+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current+--     @lineRasterizationMode@ state is+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_DEFAULT_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>+--     feature /must/ be enabled and+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@strictLines@+--     /must/ be 'Vulkan.Core10.FundamentalTypes.TRUE'+--+-- -   #VUID-vkCmdDrawIndexed-conservativePointAndLineRasterization-07499#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT'+--     dynamic state enabled,+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-conservativePointAndLineRasterization conservativePointAndLineRasterization>+--     is not supported, and the effective primitive topology output by the+--     last pre-rasterization shader stage is a line or point, then the+--     @conservativeRasterizationMode@ set by the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'+--     /must/ be+--     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT'+--+-- -   #VUID-vkCmdDrawIndexed-stage-07073# If the currently bound pipeline+--     was created with the+--     'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@+--     member of an element of+--     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pStages@ set+--     to+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT',+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT',+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'+--     or+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT',+--     then+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-mesh-shader Mesh Shader Queries>+--     /must/ not be active+--+-- -   #VUID-vkCmdDrawIndexed-None-08877# If the bound graphics pipeline+--     state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'+--     dynamic state+--     'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexed-None-07850# If dynamic state was inherited+--     from+--     'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV',+--     it /must/ be set in the current command buffer prior to this drawing+--     command+--+-- -   #VUID-vkCmdDrawIndexed-None-08684# If there is no bound graphics+--     pipeline, 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT'+--     /must/ have been called in the current command buffer with @pStages@+--     with an element of+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'+--+-- -   #VUID-vkCmdDrawIndexed-None-08685# If there is no bound graphics+--     pipeline, and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>+--     feature is enabled,+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/+--     have been called in the current command buffer with @pStages@ with+--     an element of+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT'+--+-- -   #VUID-vkCmdDrawIndexed-None-08686# If there is no bound graphics+--     pipeline, and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>+--     feature is enabled,+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/+--     have been called in the current command buffer with @pStages@ with+--     an element of+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'+--+-- -   #VUID-vkCmdDrawIndexed-None-08687# If there is no bound graphics+--     pipeline, and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader>+--     feature is enabled,+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/+--     have been called in the current command buffer with @pStages@ with+--     an element of+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'+--+-- -   #VUID-vkCmdDrawIndexed-None-08688# If there is no bound graphics+--     pipeline, 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT'+--     /must/ have been called in the current command buffer with @pStages@+--     with an element of+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'+--+-- -   #VUID-vkCmdDrawIndexed-None-08689# If there is no bound graphics+--     pipeline, and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>+--     feature is enabled,+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/+--     have been called in the current command buffer with @pStages@ with+--     an element of+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'+--+-- -   #VUID-vkCmdDrawIndexed-None-08690# If there is no bound graphics+--     pipeline, and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>+--     feature is enabled,+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/+--     have been called in the current command buffer with @pStages@ with+--     an element of+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'+--+-- -   #VUID-vkCmdDrawIndexed-None-08693# If there is no bound graphics+--     pipeline, and at least one of the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>+--     and+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>+--     features is enabled, one of the+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' or+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'+--     stages /must/ have a valid 'Vulkan.Extensions.Handles.ShaderEXT'+--     bound, and the other /must/ have no+--     'Vulkan.Extensions.Handles.ShaderEXT' bound+--+-- -   #VUID-vkCmdDrawIndexed-None-08694# If there is no bound graphics+--     pipeline, and both the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>+--     and+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>+--     features are enabled, and a valid+--     'Vulkan.Extensions.Handles.ShaderEXT' is bound the to the+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'+--     stage, and that 'Vulkan.Extensions.Handles.ShaderEXT' was created+--     without the+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_NO_TASK_SHADER_BIT_EXT'+--     flag, a valid 'Vulkan.Extensions.Handles.ShaderEXT' /must/ be bound+--     to the+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'+--     stage+--+-- -   #VUID-vkCmdDrawIndexed-None-08695# If there is no bound graphics+--     pipeline, and both the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>+--     and+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>+--     features are enabled, and a valid+--     'Vulkan.Extensions.Handles.ShaderEXT' is bound the to the+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'+--     stage, and that 'Vulkan.Extensions.Handles.ShaderEXT' was created+--     with the+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_NO_TASK_SHADER_BIT_EXT'+--     flag, there /must/ be no 'Vulkan.Extensions.Handles.ShaderEXT' bound+--     to the+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'+--     stage+--+-- -   #VUID-vkCmdDrawIndexed-None-08696# If there is no bound graphics+--     pipeline, and a valid 'Vulkan.Extensions.Handles.ShaderEXT' is bound+--     to the+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'+--     stage, there /must/ be no 'Vulkan.Extensions.Handles.ShaderEXT'+--     bound to either the+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'+--     stage or the+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'+--     stage+--+-- -   #VUID-vkCmdDrawIndexed-None-08698# If any graphics shader is bound+--     which was created with the+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'+--     flag, then all shaders created with the+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'+--     flag in the same+--     'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call+--     /must/ also be bound+--+-- -   #VUID-vkCmdDrawIndexed-None-08699# If any graphics shader is bound+--     which was created with the+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'+--     flag, any stages in between stages whose shaders which did not+--     create a shader with the+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'+--     flag as part of the same+--     'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call+--     /must/ not have any 'Vulkan.Extensions.Handles.ShaderEXT' bound+--+-- -   #VUID-vkCmdDrawIndexed-None-08878# All bound graphics shader objects+--     /must/ have been created with identical or identically defined push+--     constant ranges+--+-- -   #VUID-vkCmdDrawIndexed-None-08879# All bound graphics shader objects+--     /must/ have been created with identical or identically defined+--     arrays of descriptor set layouts+--+-- -   #VUID-vkCmdDrawIndexed-colorAttachmentCount-09372# If the current+--     render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     and a+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@+--     equal to @1@, a color attachment with a resolve mode of+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',+--     and a fragment shader is bound, it /must/ not declare the+--     @DepthReplacing@ or @StencilRefReplacingEXT@ execution modes+--+-- -   #VUID-vkCmdDrawIndexed-None-08880# If 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-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 not the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'+--     dynamic state enabled, then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'+--     /must/ have been called in the current command buffer prior to this+--     draw command, and the @pStrides@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'+--     /must/ not be @NULL@+--+-- -   #VUID-vkCmdDrawIndexed-None-04914# If 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# An index buffer /must/ be bound+--+-- -   #VUID-vkCmdDrawIndexed-robustBufferAccess2-07825# If+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2>+--     is not enabled, (@indexSize@ × (@firstIndex@ + @indexCount@) ++--     @offset@) /must/ be less than or equal to the size of the bound+--     index buffer, with @indexSize@ being based on the type specified by+--     @indexType@, where the index buffer, @indexType@, and @offset@ are+--     specified via 'cmdBindIndexBuffer'+--+-- -   #VUID-vkCmdDrawIndexed-robustBufferAccess2-08798# If+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2>+--     is not enabled, (@indexSize@ × (@firstIndex@ + @indexCount@) ++--     @offset@) /must/ be less than or equal to the size of the bound+--     index buffer, with @indexSize@ being based on the type specified by+--     @indexType@, where the index buffer, @indexType@, and @offset@ are+--     specified via 'cmdBindIndexBuffer' or+--     'Vulkan.Extensions.VK_KHR_maintenance5.cmdBindIndexBuffer2KHR'. If+--     'Vulkan.Extensions.VK_KHR_maintenance5.cmdBindIndexBuffer2KHR' is+--     used to bind the index buffer, the size of the bound index buffer is+--     'Vulkan.Extensions.VK_KHR_maintenance5.cmdBindIndexBuffer2KHR'::@size@+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdDrawIndexed-commandBuffer-parameter# @commandBuffer@+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdDrawIndexed-commandBuffer-recording# @commandBuffer@+--     /must/ be in the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- -   #VUID-vkCmdDrawIndexed-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- -   #VUID-vkCmdDrawIndexed-renderpass# This command /must/ only be+--     called inside of a render pass instance+--+-- -   #VUID-vkCmdDrawIndexed-videocoding# This command /must/ only be+--     called outside of a video coding scope+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Inside                                                                                                                 | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.CommandBuffer'+cmdDrawIndexed :: forall io+                . (MonadIO io)+               => -- | @commandBuffer@ is the command buffer into which the command is+                  -- recorded.+                  CommandBuffer+               -> -- | @indexCount@ is the number of vertices to draw.+                  ("indexCount" ::: Word32)+               -> -- | @instanceCount@ is the number of instances to draw.+                  ("instanceCount" ::: Word32)+               -> -- | @firstIndex@ is the base index within the index buffer.+                  ("firstIndex" ::: Word32)+               -> -- | @vertexOffset@ is the value added to the vertex index before indexing+                  -- into the vertex buffer.+                  ("vertexOffset" ::: Int32)+               -> -- | @firstInstance@ is the instance ID of the first instance to draw.+                  ("firstInstance" ::: Word32)+               -> io ()+cmdDrawIndexed commandBuffer+                 indexCount+                 instanceCount+                 firstIndex+                 vertexOffset+                 firstInstance = liftIO $ do+  let vkCmdDrawIndexedPtr = pVkCmdDrawIndexed (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdDrawIndexedPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDrawIndexed is null" Nothing Nothing+  let vkCmdDrawIndexed' = mkVkCmdDrawIndexed vkCmdDrawIndexedPtr+  traceAroundEvent "vkCmdDrawIndexed" (vkCmdDrawIndexed'+                                         (commandBufferHandle (commandBuffer))+                                         (indexCount)+                                         (instanceCount)+                                         (firstIndex)+                                         (vertexOffset)+                                         (firstInstance))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdDrawIndirect+  :: FunPtr (Ptr CommandBuffer_T -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO ()++-- | vkCmdDrawIndirect - Draw primitives with indirect parameters+--+-- = Description+--+-- 'cmdDrawIndirect' behaves similarly to 'cmdDraw' except that the+-- parameters are read by the device from a buffer during execution.+-- @drawCount@ draws are executed by the command, with parameters taken+-- from @buffer@ starting at @offset@ and increasing by @stride@ bytes for+-- each successive draw. The parameters of each draw are encoded in an+-- array of 'Vulkan.Core10.OtherTypes.DrawIndirectCommand' structures. If+-- @drawCount@ is less than or equal to one, @stride@ is ignored.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdDrawIndirect-magFilter-04553# If a+--     'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or+--     @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and+--     @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE' is+--     used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+--     this command, then the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+--+-- -   #VUID-vkCmdDrawIndirect-mipmapMode-04770# If a+--     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'+--     and @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE'+--     is used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+--     this command, then the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+--+-- -   #VUID-vkCmdDrawIndirect-None-06479# If a+--     'Vulkan.Core10.Handles.ImageView' is sampled with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-depth-compare-operation depth comparison>,+--     the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT'+--+-- -   #VUID-vkCmdDrawIndirect-None-02691# If a+--     'Vulkan.Core10.Handles.ImageView' is accessed using atomic+--     operations as a result of this command, then the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT'+--+-- -   #VUID-vkCmdDrawIndirect-None-07888# If a+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER'+--     descriptor is accessed using atomic operations as a result of this+--     command, then the storage texel buffer’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-buffer-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT'+--+-- -   #VUID-vkCmdDrawIndirect-None-02692# If a+--     'Vulkan.Core10.Handles.ImageView' is sampled with+--     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this+--     command, then the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'+--+-- -   #VUID-vkCmdDrawIndirect-None-02693# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_filter_cubic VK_EXT_filter_cubic>+--     extension is not enabled and any 'Vulkan.Core10.Handles.ImageView'+--     is sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a+--     result of this command, it /must/ not have a+--     'Vulkan.Core10.Enums.ImageViewType.ImageViewType' of+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D',+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE', or+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY'+--+-- -   #VUID-vkCmdDrawIndirect-filterCubic-02694# Any+--     'Vulkan.Core10.Handles.ImageView' being sampled with+--     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this+--     command /must/ have a+--     'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that+--     supports cubic filtering, as specified by+--     'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubic@+--     returned by+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'+--+-- -   #VUID-vkCmdDrawIndirect-filterCubicMinmax-02695# Any+--     'Vulkan.Core10.Handles.ImageView' being sampled with+--     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' with a reduction mode+--     of either+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'+--     or+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'+--     as a result of this command /must/ have a+--     'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that+--     supports cubic filtering together with minmax filtering, as+--     specified by+--     'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubicMinmax@+--     returned by+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'+--+-- -   #VUID-vkCmdDrawIndirect-cubicRangeClamp-09212# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-range-clamp cubicRangeClamp>+--     feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView'+--     being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as+--     a result of this command /must/ not have a+--     'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'::@reductionMode@+--     equal to+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM'+--+-- -   #VUID-vkCmdDrawIndirect-reductionMode-09213# Any+--     'Vulkan.Core10.Handles.ImageView' being sampled with a+--     'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'::@reductionMode@+--     equal to+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM'+--     as a result of this command /must/ sample with+--     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT'+--+-- -   #VUID-vkCmdDrawIndirect-selectableCubicWeights-09214# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-weight-selection selectableCubicWeights>+--     feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView'+--     being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as+--     a result of this command /must/ have+--     'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.SamplerCubicWeightsCreateInfoQCOM'::@cubicWeights@+--     equal to+--     'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM'+--+-- -   #VUID-vkCmdDrawIndirect-flags-02696# Any+--     'Vulkan.Core10.Handles.Image' created with a+--     'Vulkan.Core10.Image.ImageCreateInfo'::@flags@ containing+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_CORNER_SAMPLED_BIT_NV'+--     sampled as a result of this command /must/ only be sampled using a+--     'Vulkan.Core10.Enums.SamplerAddressMode.SamplerAddressMode' of+--     'Vulkan.Core10.Enums.SamplerAddressMode.SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE'+--+-- -   #VUID-vkCmdDrawIndirect-OpTypeImage-07027# For any+--     'Vulkan.Core10.Handles.ImageView' being written as a storage image+--     where the image format field of the @OpTypeImage@ is @Unknown@, the+--     view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'+--+-- -   #VUID-vkCmdDrawIndirect-OpTypeImage-07028# For any+--     'Vulkan.Core10.Handles.ImageView' being read as a storage image+--     where the image format field of the @OpTypeImage@ is @Unknown@, the+--     view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT'+--+-- -   #VUID-vkCmdDrawIndirect-OpTypeImage-07029# For any+--     'Vulkan.Core10.Handles.BufferView' being written as a storage texel+--     buffer where the image format field of the @OpTypeImage@ is+--     @Unknown@, the view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'+--+-- -   #VUID-vkCmdDrawIndirect-OpTypeImage-07030# Any+--     'Vulkan.Core10.Handles.BufferView' being read as a storage texel+--     buffer where the image format field of the @OpTypeImage@ is+--     @Unknown@ then the view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT'+--+-- -   #VUID-vkCmdDrawIndirect-None-08600# For each set /n/ that is+--     statically used by+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,+--     a descriptor set /must/ have been bound to /n/ at the same pipeline+--     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is+--     compatible for set /n/, with the+--     'Vulkan.Core10.Handles.PipelineLayout' or+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to+--     create the current 'Vulkan.Core10.Handles.Pipeline' or+--     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>+--+-- -   #VUID-vkCmdDrawIndirect-None-08601# For each push constant that is+--     statically used by+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,+--     a push constant value /must/ have been set for the same pipeline+--     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is+--     compatible for push constants, with the+--     'Vulkan.Core10.Handles.PipelineLayout' or+--     'Vulkan.Core10.Handles.DescriptorSetLayout' and+--     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to+--     create the current 'Vulkan.Core10.Handles.Pipeline' or+--     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>+--+-- -   #VUID-vkCmdDrawIndirect-maintenance4-08602# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance4 maintenance4>+--     feature is not enabled, then for each push constant that is+--     statically used by+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,+--     a push constant value /must/ have been set for the same pipeline+--     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is+--     compatible for push constants, with the+--     'Vulkan.Core10.Handles.PipelineLayout' or+--     'Vulkan.Core10.Handles.DescriptorSetLayout' and+--     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to+--     create the current 'Vulkan.Core10.Handles.Pipeline' or+--     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>+--+-- -   #VUID-vkCmdDrawIndirect-None-08114# Descriptors in each bound+--     descriptor set, specified via 'cmdBindDescriptorSets', /must/ be+--     valid if they are statically used by the+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+--     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'+--     was not created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDrawIndirect-None-08115# If the descriptors used by the+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+--     were specified via 'cmdBindDescriptorSets', the bound+--     'Vulkan.Core10.Handles.Pipeline' /must/ have been created without+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDrawIndirect-None-08116# Descriptors in bound descriptor+--     buffers, specified via+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',+--     /must/ be valid if they are dynamically used by the+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+--     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'+--     was created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDrawIndirect-None-08604# Descriptors in bound descriptor+--     buffers, specified via+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',+--     /must/ be valid if they are dynamically used by any+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding+--     to the pipeline bind point used by this command+--+-- -   #VUID-vkCmdDrawIndirect-None-08117# If the descriptors used by the+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+--     were specified via+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',+--     the bound 'Vulkan.Core10.Handles.Pipeline' /must/ have been created+--     with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDrawIndirect-None-08119# If a descriptor is dynamically+--     used with a 'Vulkan.Core10.Handles.Pipeline' created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',+--     the descriptor memory /must/ be resident+--+-- -   #VUID-vkCmdDrawIndirect-None-08605# If a descriptor is dynamically+--     used with a 'Vulkan.Extensions.Handles.ShaderEXT' created with a+--     'Vulkan.Core10.Handles.DescriptorSetLayout' that was created with+--     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',+--     the descriptor memory /must/ be resident+--+-- -   #VUID-vkCmdDrawIndirect-None-08606# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>+--     feature is not enabled, a valid pipeline /must/ be bound to the+--     pipeline bind point used by this command+--+-- -   #VUID-vkCmdDrawIndirect-None-08607# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>+--     is enabled, either a valid pipeline /must/ be bound to the pipeline+--     bind point used by this command, or a valid combination of valid and+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be+--     bound to every supported shader stage corresponding to the pipeline+--     bind point used by this command+--+-- -   #VUID-vkCmdDrawIndirect-None-08608# If a pipeline is bound to the+--     pipeline bind point used by this command, there /must/ not have been+--     any calls to dynamic state setting commands for any state not+--     specified as dynamic in the 'Vulkan.Core10.Handles.Pipeline' object+--     bound to the pipeline bind point used by this command, since that+--     pipeline was bound+--+-- -   #VUID-vkCmdDrawIndirect-None-08609# If the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command or any+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding+--     to the pipeline bind point used by this command accesses a+--     'Vulkan.Core10.Handles.Sampler' object that uses unnormalized+--     coordinates, that sampler /must/ not be used to sample from any+--     'Vulkan.Core10.Handles.Image' with a+--     'Vulkan.Core10.Handles.ImageView' of the type+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D',+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE',+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D_ARRAY',+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D_ARRAY' or+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY', in+--     any shader stage+--+-- -   #VUID-vkCmdDrawIndirect-None-08610# If the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command or any+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding+--     to the pipeline bind point used by this command accesses a+--     'Vulkan.Core10.Handles.Sampler' object that uses unnormalized+--     coordinates, that sampler /must/ not be used with any of the SPIR-V+--     @OpImageSample*@ or @OpImageSparseSample*@ instructions with+--     @ImplicitLod@, @Dref@ or @Proj@ in their name, in any shader stage+--+-- -   #VUID-vkCmdDrawIndirect-None-08611# If the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command or any+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding+--     to the pipeline bind point used by this command accesses a+--     'Vulkan.Core10.Handles.Sampler' object that uses unnormalized+--     coordinates, that sampler /must/ not be used with any of the SPIR-V+--     @OpImageSample*@ or @OpImageSparseSample*@ instructions that+--     includes a LOD bias or any offset values, in any shader stage+--+-- -   #VUID-vkCmdDrawIndirect-uniformBuffers-06935# If any stage of the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command accesses a uniform buffer, and that stage+--     was created without enabling either+--     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'+--     or+--     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+--     for @uniformBuffers@, and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+--     feature is not enabled, that stage /must/ not access values outside+--     of the range of the buffer as specified in the descriptor set bound+--     to the same pipeline bind point+--+-- -   #VUID-vkCmdDrawIndirect-None-08612# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+--     feature is not enabled, and any+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding+--     to the pipeline bind point used by this command accesses a uniform+--     buffer, it /must/ not access values outside of the range of the+--     buffer as specified in the descriptor set bound to the same pipeline+--     bind point+--+-- -   #VUID-vkCmdDrawIndirect-storageBuffers-06936# If any stage of the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command accesses a storage buffer, and that stage+--     was created without enabling either+--     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'+--     or+--     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+--     for @storageBuffers@, and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+--     feature is not enabled, that stage /must/ not access values outside+--     of the range of the buffer as specified in the descriptor set bound+--     to the same pipeline bind point+--+-- -   #VUID-vkCmdDrawIndirect-None-08613# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+--     feature is not enabled, and any+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding+--     to the pipeline bind point used by this command accesses a storage+--     buffer, it /must/ not access values outside of the range of the+--     buffer as specified in the descriptor set bound to the same pipeline+--     bind point+--+-- -   #VUID-vkCmdDrawIndirect-commandBuffer-02707# If @commandBuffer@ is+--     an unprotected command buffer and+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+--     is not supported, any resource accessed by+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding bound shaders>+--     /must/ not be a protected resource+--+-- -   #VUID-vkCmdDrawIndirect-None-06550# If+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>+--     accesses a 'Vulkan.Core10.Handles.Sampler' or+--     'Vulkan.Core10.Handles.ImageView' object that enables+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,+--     that object /must/ only be used with @OpImageSample*@ or+--     @OpImageSparseSample*@ instructions+--+-- -   #VUID-vkCmdDrawIndirect-ConstOffset-06551# If+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>+--     accesses a 'Vulkan.Core10.Handles.Sampler' or+--     'Vulkan.Core10.Handles.ImageView' object that enables+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,+--     that object /must/ not use the @ConstOffset@ and @Offset@ operands+--+-- -   #VUID-vkCmdDrawIndirect-viewType-07752# If a+--     'Vulkan.Core10.Handles.ImageView' is accessed as a result of this+--     command, then the image view’s @viewType@ /must/ match the @Dim@+--     operand of the @OpTypeImage@ as described in+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-operation-validation ???>+--+-- -   #VUID-vkCmdDrawIndirect-format-07753# If a+--     'Vulkan.Core10.Handles.ImageView' is accessed as a result of this+--     command, then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-numericformat numeric type>+--     of the image view’s @format@ and the @Sampled@ @Type@ operand of the+--     @OpTypeImage@ /must/ match+--+-- -   #VUID-vkCmdDrawIndirect-OpImageWrite-08795# If a+--     'Vulkan.Core10.Handles.ImageView' created with a format other than+--     'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using+--     @OpImageWrite@ as a result of this command, then the @Type@ of the+--     @Texel@ operand of that instruction /must/ have at least as many+--     components as the image view’s format+--+-- -   #VUID-vkCmdDrawIndirect-OpImageWrite-08796# If a+--     'Vulkan.Core10.Handles.ImageView' created with the format+--     'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using+--     @OpImageWrite@ as a result of this command, then the @Type@ of the+--     @Texel@ operand of that instruction /must/ have four components+--+-- -   #VUID-vkCmdDrawIndirect-OpImageWrite-04469# If a+--     'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@+--     as a result of this command, then the @Type@ of the @Texel@ operand+--     of that instruction /must/ have at least as many components as the+--     buffer view’s format+--+-- -   #VUID-vkCmdDrawIndirect-SampledType-04470# If a+--     'Vulkan.Core10.Handles.ImageView' with a+--     'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component+--     width is accessed as a result of this command, the @SampledType@ of+--     the @OpTypeImage@ operand of that instruction /must/ have a @Width@+--     of 64+--+-- -   #VUID-vkCmdDrawIndirect-SampledType-04471# If a+--     'Vulkan.Core10.Handles.ImageView' with a+--     'Vulkan.Core10.Enums.Format.Format' that has a component width less+--     than 64-bit is accessed as a result of this command, the+--     @SampledType@ of the @OpTypeImage@ operand of that instruction+--     /must/ have a @Width@ of 32+--+-- -   #VUID-vkCmdDrawIndirect-SampledType-04472# If a+--     'Vulkan.Core10.Handles.BufferView' with a+--     'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component+--     width is accessed as a result of this command, the @SampledType@ of+--     the @OpTypeImage@ operand of that instruction /must/ have a @Width@+--     of 64+--+-- -   #VUID-vkCmdDrawIndirect-SampledType-04473# If a+--     'Vulkan.Core10.Handles.BufferView' with a+--     'Vulkan.Core10.Enums.Format.Format' that has a component width less+--     than 64-bit is accessed as a result of this command, the+--     @SampledType@ of the @OpTypeImage@ operand of that instruction+--     /must/ have a @Width@ of 32+--+-- -   #VUID-vkCmdDrawIndirect-sparseImageInt64Atomics-04474# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>+--     feature is not enabled, 'Vulkan.Core10.Handles.Image' objects+--     created with the+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_RESIDENCY_BIT'+--     flag /must/ not be accessed by atomic instructions through an+--     @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this+--     command+--+-- -   #VUID-vkCmdDrawIndirect-sparseImageInt64Atomics-04475# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>+--     feature is not enabled, 'Vulkan.Core10.Handles.Buffer' objects+--     created with the+--     'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_SPARSE_RESIDENCY_BIT'+--     flag /must/ not be accessed by atomic instructions through an+--     @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this+--     command+--+-- -   #VUID-vkCmdDrawIndirect-OpImageWeightedSampleQCOM-06971# If+--     @OpImageWeightedSampleQCOM@ is used to sample a+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then+--     the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM'+--+-- -   #VUID-vkCmdDrawIndirect-OpImageWeightedSampleQCOM-06972# If+--     @OpImageWeightedSampleQCOM@ uses a 'Vulkan.Core10.Handles.ImageView'+--     as a sample weight image as a result of this command, then the image+--     view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM'+--+-- -   #VUID-vkCmdDrawIndirect-OpImageBoxFilterQCOM-06973# If+--     @OpImageBoxFilterQCOM@ is used to sample a+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then+--     the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM'+--+-- -   #VUID-vkCmdDrawIndirect-OpImageBlockMatchSSDQCOM-06974# If+--     @OpImageBlockMatchSSDQCOM@ is used to read from an+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then+--     the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- -   #VUID-vkCmdDrawIndirect-OpImageBlockMatchSADQCOM-06975# If+--     @OpImageBlockMatchSADQCOM@ is used to read from an+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then+--     the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- -   #VUID-vkCmdDrawIndirect-OpImageBlockMatchSADQCOM-06976# If+--     @OpImageBlockMatchSADQCOM@ or OpImageBlockMatchSSDQCOM is used to+--     read from a reference image as result of this command, then the+--     specified reference coordinates /must/ not fail+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation integer texel coordinate validation>+--+-- -   #VUID-vkCmdDrawIndirect-OpImageWeightedSampleQCOM-06977# If+--     @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,+--     @OpImageBlockMatchWindowSSDQCOM@, @OpImageBlockMatchWindowSADQCOM@,+--     @OpImageBlockMatchGatherSSDQCOM@, @OpImageBlockMatchGatherSADQCOM@,+--     @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a+--     'Vulkan.Core10.Handles.Sampler' as a result of this command, then+--     the sampler /must/ have been created with+--     'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'+--+-- -   #VUID-vkCmdDrawIndirect-OpImageWeightedSampleQCOM-06978# If any+--     command other than @OpImageWeightedSampleQCOM@,+--     @OpImageBoxFilterQCOM@, @OpImageBlockMatchWindowSSDQCOM@,+--     @OpImageBlockMatchWindowSADQCOM@, @OpImageBlockMatchGatherSSDQCOM@,+--     @OpImageBlockMatchGatherSADQCOM@, @OpImageBlockMatchSSDQCOM@, or+--     @OpImageBlockMatchSADQCOM@ uses a 'Vulkan.Core10.Handles.Sampler' as+--     a result of this command, then the sampler /must/ not have been+--     created with+--     'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'+--+-- -   #VUID-vkCmdDrawIndirect-OpImageBlockMatchWindow-09215# If a+--     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@+--     instruction is used to read from an+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then+--     the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- -   #VUID-vkCmdDrawIndirect-OpImageBlockMatchWindow-09216# If a+--     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@+--     instruction is used to read from an+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then+--     the image view’s format /must/ be a single-component format.+--+-- -   #VUID-vkCmdDrawIndirect-OpImageBlockMatchWindow-09217# If a+--     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@+--     read from a reference image as result of this command, then the+--     specified reference coordinates /must/ not fail+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation integer texel coordinate validation>+--+-- -   #VUID-vkCmdDrawIndirect-None-07288# Any shader invocation executed+--     by this command /must/+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-termination terminate>+--+-- -   #VUID-vkCmdDrawIndirect-renderPass-02684# The current render pass+--     /must/ be+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-compatibility compatible>+--     with the @renderPass@ member of the+--     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo' structure+--     specified when creating the 'Vulkan.Core10.Handles.Pipeline' bound+--     to+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'+--+-- -   #VUID-vkCmdDrawIndirect-subpass-02685# The subpass index of the+--     current render pass /must/ be equal to the @subpass@ member of the+--     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo' structure+--     specified when creating the 'Vulkan.Core10.Handles.Pipeline' bound+--     to+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'+--+-- -   #VUID-vkCmdDrawIndirect-None-07748# If any shader statically+--     accesses an input attachment, a valid descriptor /must/ be bound to+--     the pipeline via a descriptor set+--+-- -   #VUID-vkCmdDrawIndirect-OpTypeImage-07468# If any shader executed by+--     this pipeline accesses an @OpTypeImage@ variable with a @Dim@+--     operand of @SubpassData@, it /must/ be decorated with an+--     @InputAttachmentIndex@ that corresponds to a valid input attachment+--     in the current subpass+--+-- -   #VUID-vkCmdDrawIndirect-None-07469# Input attachment views accessed+--     in a subpass /must/ be created with the same+--     'Vulkan.Core10.Enums.Format.Format' as the corresponding subpass+--     definition, and be created with a 'Vulkan.Core10.Handles.ImageView'+--     that is compatible with the attachment referenced by the subpass\'+--     @pInputAttachments@[@InputAttachmentIndex@] in the currently bound+--     'Vulkan.Core10.Handles.Framebuffer' as specified by+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#compatibility-inputattachment Fragment Input Attachment Compatibility>+--+-- -   #VUID-vkCmdDrawIndirect-None-06537# Memory backing image+--     subresources used as attachments in the current render pass /must/+--     not be written in any way other than as an attachment by this+--     command+--+-- -   #VUID-vkCmdDrawIndirect-None-09000# If a color attachment is written+--     by any prior command in this subpass or by the load, store, or+--     resolve operations for this subpass, it is not in the+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'+--     image layout, and either:+--+--     -   the+--         'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'+--         is set on the currently bound pipeline or+--+--     -   the last call to+--         'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'+--         included+--         'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'+--         and+--+--         -   there is no currently bound graphics pipeline or+--+--         -   the currently bound graphics pipeline was created with+--             'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'+--             it /must/ not be accessed in any way other than as an+--             attachment by this command+--+-- -   #VUID-vkCmdDrawIndirect-None-09001# If a depth attachment is written+--     by any prior command in this subpass or by the load, store, or+--     resolve operations for this subpass, it is not in the+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'+--     image layout, and either:+--+--     -   the+--         'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'+--         is set on the currently bound pipeline or+--+--     -   the last call to+--         'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'+--         included+--         'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT'+--         and+--+--         -   there is no currently bound graphics pipeline or+--+--         -   the currently bound graphics pipeline was created with+--             'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'+--             it /must/ not be accessed in any way other than as an+--             attachment by this command+--+-- -   #VUID-vkCmdDrawIndirect-None-09002# If a stencil attachment is+--     written by any prior command in this subpass or by the load, store,+--     or resolve operations for this subpass, it is not in the+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'+--     image layout, and either:+--+--     -   the+--         'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'+--         is set on the currently bound pipeline or+--+--     -   the last call to+--         'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'+--         included+--         'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'+--         and+--+--         -   there is no currently bound graphics pipeline or+--+--         -   the currently bound graphics pipeline was created with+--             'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'+--             it /must/ not be accessed in any way other than as an+--             attachment by this command+--+-- -   #VUID-vkCmdDrawIndirect-None-09003# If an attachment is written by+--     any prior command in this subpass or by the load, store, or resolve+--     operations for this subpass, it /must/ not be accessed in any way+--     other than as an attachment, storage image, or sampled image by this+--     command+--+-- -   #VUID-vkCmdDrawIndirect-None-06539# If any previously recorded+--     command in the current subpass accessed an image subresource used as+--     an attachment in this subpass in any way other than as an+--     attachment, this command /must/ not write to that image subresource+--     as an attachment+--+-- -   #VUID-vkCmdDrawIndirect-None-06886# If the current render pass+--     instance uses a depth\/stencil attachment with a read-only layout+--     for the depth aspect,+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-depth-write depth writes>+--     /must/ be disabled+--+-- -   #VUID-vkCmdDrawIndirect-None-06887# If the current render pass+--     instance uses a depth\/stencil attachment with a read-only layout+--     for the stencil aspect, both front and back @writeMask@ are not+--     zero, and stencil test is enabled,+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-stencil all stencil ops>+--     /must/ be 'Vulkan.Core10.Enums.StencilOp.STENCIL_OP_KEEP'+--+-- -   #VUID-vkCmdDrawIndirect-None-07831# If the bound graphics pipeline+--     state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT' dynamic+--     state enabled then 'cmdSetViewport' /must/ have been called in the+--     current command buffer prior to this drawing command+--+-- -   #VUID-vkCmdDrawIndirect-None-07832# If the bound graphics pipeline+--     state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR' dynamic+--     state enabled then 'cmdSetScissor' /must/ have been called in the+--     current command buffer prior to this drawing command+--+-- -   #VUID-vkCmdDrawIndirect-None-07833# If the bound graphics pipeline+--     state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_WIDTH' dynamic+--     state enabled then 'cmdSetLineWidth' /must/ have been called in the+--     current command buffer prior to this drawing command+--+-- -   #VUID-vkCmdDrawIndirect-None-08617# If a shader object is bound to+--     any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in 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-sampleLocationsPerPixel-07934# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     state enabled, then the @sampleLocationsPerPixel@ member of+--     @pSampleLocationsInfo@ in the last call to+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ equal the @rasterizationSamples@ member of the+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'+--     structure the bound graphics pipeline has been created with+--+-- -   #VUID-vkCmdDrawIndirect-None-07840# If the bound graphics pipeline+--     state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic+--     state enabled then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndirect-None-08627# If a shader object is bound to+--     any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current command buffer set @rasterizerDiscardEnable@ to+--     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndirect-None-07841# If the bound graphics pipeline+--     state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRONT_FACE' dynamic+--     state enabled then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndirect-None-08628# If a shader object is bound to+--     any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current command buffer set @rasterizerDiscardEnable@ to+--     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndirect-None-07843# If the bound graphics pipeline+--     state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE'+--     dynamic state enabled then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndirect-None-08629# If a shader object is bound to+--     any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current command buffer set @rasterizerDiscardEnable@ to+--     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndirect-None-07844# If the bound graphics pipeline+--     state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'+--     dynamic state enabled then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndirect-None-08630# If a shader object is bound to+--     any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current command buffer set @rasterizerDiscardEnable@ to+--     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndirect-None-07845# If the bound graphics pipeline+--     state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP'+--     dynamic state enabled then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndirect-None-08631# If a shader object is bound to+--     any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current command buffer set @rasterizerDiscardEnable@ to+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'+--     in the current command buffer set @depthTestEnable@ to+--     'Vulkan.Core10.FundamentalTypes.TRUE', then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndirect-None-07846# If the bound graphics pipeline+--     state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE'+--     dynamic state enabled then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndirect-None-08632# If a shader object is bound to+--     any graphics stage, and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthBounds depthBounds>+--     feature is enabled, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current command buffer set @rasterizerDiscardEnable@ to+--     'Vulkan.Core10.FundamentalTypes.FALSE', then the+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndirect-None-07847# If the bound graphics pipeline+--     state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE'+--     dynamic state enabled then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndirect-None-08633# If a shader object is bound to+--     any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current command buffer set @rasterizerDiscardEnable@ to+--     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndirect-None-07848# If the bound graphics pipeline+--     state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP' dynamic+--     state enabled then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndirect-None-08634# If a shader object is bound to+--     any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current command buffer set @rasterizerDiscardEnable@ to+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'+--     in the current command buffer set @stencilTestEnable@ to+--     'Vulkan.Core10.FundamentalTypes.TRUE', then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndirect-viewportCount-03417# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+--     dynamic state enabled, but not the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'+--     dynamic state enabled, then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the @viewportCount@ parameter of+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--     /must/ match the+--     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@scissorCount@+--     of the pipeline+--+-- -   #VUID-vkCmdDrawIndirect-scissorCount-03418# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'+--     dynamic state enabled, but not the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+--     dynamic state enabled, then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the @scissorCount@ parameter of+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'+--     /must/ match the+--     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@viewportCount@+--     of the pipeline+--+-- -   #VUID-vkCmdDrawIndirect-viewportCount-03419# If the bound graphics+--     pipeline state was created with both the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'+--     and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+--     dynamic states enabled then both+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--     and+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the @viewportCount@ parameter of+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--     /must/ match the @scissorCount@ parameter of+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'+--+-- -   #VUID-vkCmdDrawIndirect-None-08635# If a shader object is bound to+--     any graphics stage, then both+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--     and+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the @viewportCount@ parameter of+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--     /must/ match the @scissorCount@ parameter of+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'+--+-- -   #VUID-vkCmdDrawIndirect-viewportCount-04137# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+--     dynamic state enabled, but not the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_NV'+--     dynamic state enabled, then the bound graphics pipeline /must/ have+--     been created with+--     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.PipelineViewportWScalingStateCreateInfoNV'::@viewportCount@+--     greater or equal to the @viewportCount@ parameter in the last call+--     to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- -   #VUID-vkCmdDrawIndirect-viewportCount-04138# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+--     and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_NV'+--     dynamic states enabled then the @viewportCount@ parameter in the+--     last call to+--     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV'+--     /must/ be greater than or equal to the @viewportCount@ parameter in+--     the last call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- -   #VUID-vkCmdDrawIndirect-None-09232# If 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 @VK_AMD_mixed_attachment_samples@ extension, the+--     @VK_NV_framebuffer_mixed_samples@ extension, or the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--     feature is enabled, then @rasterizationSamples@ for the currently+--     bound graphics pipeline /must/ be the same as the current subpass+--     color and\/or depth\/stencil attachments+--+-- -   #VUID-vkCmdDrawIndirect-None-08644# If a shader object is bound to+--     any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current command buffer set @rasterizerDiscardEnable@ to+--     'Vulkan.Core10.FundamentalTypes.FALSE', and none of the+--     @VK_AMD_mixed_attachment_samples@ extension, the+--     @VK_NV_framebuffer_mixed_samples@ extension, or the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--     feature is enabled, then the most recent call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--     in the current command buffer /must/ have set @rasterizationSamples@+--     to be the same as the number of samples for the current render pass+--     color and\/or depth\/stencil attachments+--+-- -   #VUID-vkCmdDrawIndirect-None-08876# If a shader object is bound to+--     any graphics stage, the current render pass instance /must/ have+--     been begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--+-- -   #VUID-vkCmdDrawIndirect-imageView-06172# If the current render pass+--     instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the @imageView@ member of @pDepthAttachment@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+--     @pDepthAttachment@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL',+--     this command /must/ not write any values to the depth attachment+--+-- -   #VUID-vkCmdDrawIndirect-imageView-06173# If the current render pass+--     instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the @imageView@ member of @pStencilAttachment@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+--     @pStencilAttachment@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL',+--     this command /must/ not write any values to the stencil attachment+--+-- -   #VUID-vkCmdDrawIndirect-imageView-06174# If the current render pass+--     instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the @imageView@ member of @pDepthAttachment@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+--     @pDepthAttachment@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL',+--     this command /must/ not write any values to the depth attachment+--+-- -   #VUID-vkCmdDrawIndirect-imageView-06175# If the current render pass+--     instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the @imageView@ member of @pStencilAttachment@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+--     @pStencilAttachment@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL',+--     this command /must/ not write any values to the stencil attachment+--+-- -   #VUID-vkCmdDrawIndirect-imageView-06176# If the current render pass+--     instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the @imageView@ member of @pDepthAttachment@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+--     @pDepthAttachment@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL',+--     this command /must/ not write any values to the depth attachment+--+-- -   #VUID-vkCmdDrawIndirect-imageView-06177# If the current render pass+--     instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the @imageView@ member of @pStencilAttachment@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+--     @pStencilAttachment@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL',+--     this command /must/ not write any values to the stencil attachment+--+-- -   #VUID-vkCmdDrawIndirect-viewMask-06178# If the current render pass+--     instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the currently bound graphics pipeline /must/ have been created with+--     a+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@viewMask@+--     equal to+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@viewMask@+--+-- -   #VUID-vkCmdDrawIndirect-colorAttachmentCount-06179# If the current+--     render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the currently bound graphics pipeline /must/ have been created with+--     a+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@colorAttachmentCount@+--     equal to+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@+--+-- -   #VUID-vkCmdDrawIndirect-dynamicRenderingUnusedAttachments-08910# If+--     the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>+--     feature is not enabled, and the current render pass instance was+--     begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@+--     greater than @0@, then each element of the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@+--     array with a @imageView@ not equal to+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created+--     with a 'Vulkan.Core10.Enums.Format.Format' equal to the+--     corresponding element of+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@+--     used to create the currently bound graphics pipeline+--+-- -   #VUID-vkCmdDrawIndirect-dynamicRenderingUnusedAttachments-08911# If+--     the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>+--     feature is enabled, and the current render pass instance was begun+--     with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@+--     greater than @0@, then each element of the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@+--     array with a @imageView@ not equal to+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created+--     with a 'Vulkan.Core10.Enums.Format.Format' equal to the+--     corresponding element of+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@+--     used to create the currently bound graphics pipeline, or the+--     corresponding element of+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,+--     if it exists, /must/ be+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'+--+-- -   #VUID-vkCmdDrawIndirect-dynamicRenderingUnusedAttachments-08912# If+--     the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>+--     feature is not enabled, and the current render pass instance was+--     begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@+--     greater than @0@, then each element of the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@+--     array with a @imageView@ equal to+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have the+--     corresponding element of+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@+--     used to create the currently bound pipeline equal to+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'+--+-- -   #VUID-vkCmdDrawIndirect-colorAttachmentCount-09362# If the current+--     render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     with a+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@+--     equal to @1@, there is no shader object bound to any graphics stage,+--     and a color attachment with a resolve mode of+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',+--     each element of the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@+--     array with a @resolveImageView@ not equal to+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created+--     with an image created with a+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@+--     value equal to the+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@+--     value used to create the currently bound graphics pipeline+--+-- -   #VUID-vkCmdDrawIndirect-None-09363# If there is no shader object+--     bound to any graphics stage, the current render pass instance was+--     begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     and a+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@+--     equal to @1@, and a color attachment with a resolve mode of+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',+--     each element of the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@+--     array with a @imageView@ not equal to+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created+--     with an image created with a+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@+--     value equal to the+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@+--     value used to create the currently bound graphics pipeline+--+-- -   #VUID-vkCmdDrawIndirect-None-09364# If the current render pass+--     instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     there is no shader object bound to any graphics stage, and the+--     currently bound graphics pipeline was created with a non-zero+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@+--     value and with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'+--     dynamic state enabled, then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     /must/ have set the blend enable to+--     'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command+--+-- -   #VUID-vkCmdDrawIndirect-None-09365# If the current render pass+--     instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     there is no shader object bound to any graphics stage, and the+--     currently bound graphics pipeline was created with a non-zero+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@+--     value and with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     dynamic state enabled, then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--     /must/ have set @rasterizationSamples@ to+--     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior+--     to this drawing command+--+-- -   #VUID-vkCmdDrawIndirect-None-09366# If there is a shader object+--     bound to any graphics stage, and the current render pass includes a+--     color attachment that uses the+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'+--     resolve mode, then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     /must/ have set blend enable to+--     'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command+--+-- -   #VUID-vkCmdDrawIndirect-rasterizationSamples-09367# If there is a+--     shader object bound to any graphics stage, and the current render+--     pass includes a color attachment that uses the+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'+--     resolve mode, then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--     /must/ have set @rasterizationSamples@ to+--     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior+--     to this drawing command+--+-- -   #VUID-vkCmdDrawIndirect-None-09368# If the current render pass+--     instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     there is no shader object bound to any graphics stage, and the+--     currently bound graphics pipeline was created with a non-zero+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@+--     value and with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'+--     dynamic state enabled, then+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'+--     /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing+--     command+--+-- -   #VUID-vkCmdDrawIndirect-None-09369# If the current render pass+--     instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     there is no shader object bound to any graphics stage, and the+--     currently bound graphics pipeline was created with a non-zero+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@+--     value and with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'+--     dynamic state enabled, then+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'+--     /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing+--     command+--+-- -   #VUID-vkCmdDrawIndirect-pFragmentSize-09370# If there is a shader+--     object bound to any graphics stage, and the current render pass+--     includes a color attachment that uses the+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'+--     resolve mode, then+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'+--     /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing+--     command+--+-- -   #VUID-vkCmdDrawIndirect-pFragmentSize-09371# If there is a shader+--     object bound to any graphics stage, and the current render pass+--     includes a color attachment that uses the+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'+--     resolve mode, then+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'+--     /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing+--     command+--+-- -   #VUID-vkCmdDrawIndirect-None-07749# If the bound graphics pipeline+--     state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndirect-None-08646# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>+--     feature is enabled on the device, and a shader object is bound to+--     the+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'+--     stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current command buffer set @rasterizerDiscardEnable@ to+--     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndirect-attachmentCount-07750# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'+--     dynamic state enabled then the @attachmentCount@ parameter of+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+--     /must/ be greater than or equal to the+--     'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo'::@attachmentCount@+--     of the currently bound graphics pipeline+--+-- -   #VUID-vkCmdDrawIndirect-None-08647# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>+--     feature is enabled on the device, and a shader object is bound to+--     the+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'+--     stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current command buffer set @rasterizerDiscardEnable@ to+--     'Vulkan.Core10.FundamentalTypes.FALSE', then the @attachmentCount@+--     parameter of most recent call to+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+--     in the current command buffer /must/ be greater than or equal to the+--     number of color attachments in the current render pass instance+--+-- -   #VUID-vkCmdDrawIndirect-None-07751# If the bound graphics pipeline+--     state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command for each discard rectangle in+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.PipelineDiscardRectangleStateCreateInfoEXT'::@discardRectangleCount@+--+-- -   #VUID-vkCmdDrawIndirect-None-07880# If the bound graphics pipeline+--     state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndirect-rasterizerDiscardEnable-09236# If the+--     @VK_EXT_discard_rectangles@ extension is enabled, and a shader+--     object is bound to any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current command buffer set @rasterizerDiscardEnable@ to+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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 current render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the currently bound pipeline was created without a+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+--     or+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+--     structure, and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--     feature is not enabled, and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of+--     @rasterizationSamples@ for the currently bound graphics pipeline+--     /must/ be equal to the sample count used to create+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@+--+-- -   #VUID-vkCmdDrawIndirect-multisampledRenderToSingleSampled-07287# If+--     the current render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the currently bound pipeline was created without a+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+--     or+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+--     structure, and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--     feature is not enabled, and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of+--     @rasterizationSamples@ for the currently bound graphics pipeline+--     /must/ be equal to the sample count used to create+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@+--+-- -   #VUID-vkCmdDrawIndirect-pNext-07935# If this command has been called+--     inside a render pass instance started with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     and the @pNext@ chain of+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'+--     includes a+--     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'+--     structure with @multisampledRenderToSingleSampledEnable@ equal to+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the value of+--     @rasterizationSamples@ for the currently bound graphics pipeline+--     /must/ be equal to+--     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'::@rasterizationSamples@+--+-- -   #VUID-vkCmdDrawIndirect-renderPass-06198# If the current render pass+--     instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the currently bound pipeline /must/ have been created with a+--     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@renderPass@+--     equal to 'Vulkan.Core10.APIConstants.NULL_HANDLE'+--+-- -   #VUID-vkCmdDrawIndirect-pColorAttachments-08963# If the current+--     render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     there is a graphics pipeline bound with a fragment shader that+--     statically writes to a color attachment, the color write mask is not+--     zero, color writes are enabled, and the corresponding element of the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments->imageView@+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the+--     corresponding element of+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@+--     used to create the pipeline /must/ not be+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'+--+-- -   #VUID-vkCmdDrawIndirect-pDepthAttachment-08964# If the current+--     render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     there is a graphics pipeline bound, depth test is enabled, depth+--     write is enabled, and the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@+--     used to create the pipeline /must/ not be+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'+--+-- -   #VUID-vkCmdDrawIndirect-pStencilAttachment-08965# If the current+--     render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     there is a graphics pipeline bound, stencil test is enabled and the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@+--     used to create the pipeline /must/ not be+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'+--+-- -   #VUID-vkCmdDrawIndirect-primitivesGeneratedQueryWithRasterizerDiscard-06708#+--     If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithRasterizerDiscard primitivesGeneratedQueryWithRasterizerDiscard>+--     feature is not enabled and the+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'+--     query is active,+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-discard rasterization discard>+--     /must/ not be enabled+--+-- -   #VUID-vkCmdDrawIndirect-primitivesGeneratedQueryWithNonZeroStreams-06709#+--     If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams primitivesGeneratedQueryWithNonZeroStreams>+--     feature is not enabled and the+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'+--     query is active, the bound graphics pipeline /must/ not have been+--     created with a non-zero value in+--     'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT'::@rasterizationStream@+--+-- -   #VUID-vkCmdDrawIndirect-None-07619# If the bound graphics pipeline+--     state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetTessellationDomainOriginEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndirect-None-07620# If the bound graphics pipeline+--     state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndirect-None-09237# If a shader object is bound to+--     the+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'+--     stage, then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetTessellationDomainOriginEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndirect-None-08650# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClamp depthClamp>+--     feature is enabled, and a shader object is bound to any graphics+--     stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current command buffer set @rasterizerDiscardEnable@ to+--     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndirect-None-07621# If the bound graphics pipeline+--     state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_POLYGON_MODE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndirect-None-08651# If a shader object is bound to+--     any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current command buffer set @rasterizerDiscardEnable@ to+--     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndirect-None-07622# If the bound graphics pipeline+--     state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndirect-None-08652# If a shader object is bound to+--     any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current command buffer set @rasterizerDiscardEnable@ to+--     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndirect-None-07623# If the bound graphics pipeline+--     state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndirect-None-08653# If a shader object is bound to+--     any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current command buffer set @rasterizerDiscardEnable@ to+--     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndirect-None-07624# If the bound graphics pipeline+--     state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndirect-alphaToCoverageEnable-08919# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT'+--     dynamic state enabled, and @alphaToCoverageEnable@ was+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutput Fragment Output Interface>+--     /must/ contain a variable for the alpha @Component@ word in+--     @Location@ 0 at @Index@ 0+--+-- -   #VUID-vkCmdDrawIndirect-None-08654# If a shader object is bound to+--     any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current command buffer set @rasterizerDiscardEnable@ to+--     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndirect-alphaToCoverageEnable-08920# If a shader+--     object is bound to any graphics stage, and the most recent call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'+--     in the current command buffer set @alphaToCoverageEnable@ to+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutput Fragment Output Interface>+--     /must/ contain a variable for the alpha @Component@ word in+--     @Location@ 0 at @Index@ 0+--+-- -   #VUID-vkCmdDrawIndirect-None-07625# If the bound graphics pipeline+--     state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToOneEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndirect-None-08655# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-alphaToOne alphaToOne>+--     feature is enabled, and a shader object is bound to any graphics+--     stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current command buffer set @rasterizerDiscardEnable@ to+--     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToOneEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndirect-None-07626# If the bound graphics pipeline+--     state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLogicOpEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndirect-None-08656# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>+--     feature is enabled, and a shader object is bound to the+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'+--     stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current command buffer set @rasterizerDiscardEnable@ to+--     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLogicOpEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndirect-None-07627# If the bound graphics pipeline+--     state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndirect-None-08657# If a shader object is bound to+--     the+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'+--     stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current command buffer set @rasterizerDiscardEnable@ to+--     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndirect-None-07628# If the bound graphics pipeline+--     state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndirect-None-08658# If a shader object is bound to+--     the+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'+--     stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in 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_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_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_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_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_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_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_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndirect-None-08672# If the+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader+--     object is bound to any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in 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_EXT_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdDrawIndirect-stippledLineEnable-07496# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--     or+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--     dynamic states enabled, and if the current @stippledLineEnable@+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current+--     @lineRasterizationMode@ state is+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_BRESENHAM_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdDrawIndirect-stippledLineEnable-07497# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--     or+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--     dynamic states enabled, and if the current @stippledLineEnable@+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current+--     @lineRasterizationMode@ state is+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdDrawIndirect-stippledLineEnable-07498# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--     or+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--     dynamic states enabled, and if the current @stippledLineEnable@+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current+--     @lineRasterizationMode@ state is+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_DEFAULT_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>+--     feature /must/ be enabled and+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@strictLines@+--     /must/ be 'Vulkan.Core10.FundamentalTypes.TRUE'+--+-- -   #VUID-vkCmdDrawIndirect-conservativePointAndLineRasterization-07499#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT'+--     dynamic state enabled,+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-conservativePointAndLineRasterization conservativePointAndLineRasterization>+--     is not supported, and the effective primitive topology output by the+--     last pre-rasterization shader stage is a line or point, then the+--     @conservativeRasterizationMode@ set by the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'+--     /must/ be+--     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT'+--+-- -   #VUID-vkCmdDrawIndirect-stage-07073# If the currently bound pipeline+--     was created with the+--     'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@+--     member of an element of+--     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pStages@ set+--     to+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT',+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT',+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'+--     or+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT',+--     then+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-mesh-shader Mesh Shader Queries>+--     /must/ not be active+--+-- -   #VUID-vkCmdDrawIndirect-None-08877# If the bound graphics pipeline+--     state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'+--     dynamic state+--     'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndirect-None-07850# If dynamic state was inherited+--     from+--     'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV',+--     it /must/ be set in the current command buffer prior to this drawing+--     command+--+-- -   #VUID-vkCmdDrawIndirect-None-08684# If there is no bound graphics+--     pipeline, 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT'+--     /must/ have been called in the current command buffer with @pStages@+--     with an element of+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'+--+-- -   #VUID-vkCmdDrawIndirect-None-08685# If there is no bound graphics+--     pipeline, and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>+--     feature is enabled,+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/+--     have been called in the current command buffer with @pStages@ with+--     an element of+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT'+--+-- -   #VUID-vkCmdDrawIndirect-None-08686# If there is no bound graphics+--     pipeline, and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>+--     feature is enabled,+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/+--     have been called in the current command buffer with @pStages@ with+--     an element of+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'+--+-- -   #VUID-vkCmdDrawIndirect-None-08687# If there is no bound graphics+--     pipeline, and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader>+--     feature is enabled,+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/+--     have been called in the current command buffer with @pStages@ with+--     an element of+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'+--+-- -   #VUID-vkCmdDrawIndirect-None-08688# If there is no bound graphics+--     pipeline, 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT'+--     /must/ have been called in the current command buffer with @pStages@+--     with an element of+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'+--+-- -   #VUID-vkCmdDrawIndirect-None-08689# If there is no bound graphics+--     pipeline, and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>+--     feature is enabled,+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/+--     have been called in the current command buffer with @pStages@ with+--     an element of+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'+--+-- -   #VUID-vkCmdDrawIndirect-None-08690# If there is no bound graphics+--     pipeline, and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>+--     feature is enabled,+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/+--     have been called in the current command buffer with @pStages@ with+--     an element of+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'+--+-- -   #VUID-vkCmdDrawIndirect-None-08693# If there is no bound graphics+--     pipeline, and at least one of the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>+--     and+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>+--     features is enabled, one of the+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' or+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'+--     stages /must/ have a valid 'Vulkan.Extensions.Handles.ShaderEXT'+--     bound, and the other /must/ have no+--     'Vulkan.Extensions.Handles.ShaderEXT' bound+--+-- -   #VUID-vkCmdDrawIndirect-None-08694# If there is no bound graphics+--     pipeline, and both the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>+--     and+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>+--     features are enabled, and a valid+--     'Vulkan.Extensions.Handles.ShaderEXT' is bound the to the+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'+--     stage, and that 'Vulkan.Extensions.Handles.ShaderEXT' was created+--     without the+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_NO_TASK_SHADER_BIT_EXT'+--     flag, a valid 'Vulkan.Extensions.Handles.ShaderEXT' /must/ be bound+--     to the+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'+--     stage+--+-- -   #VUID-vkCmdDrawIndirect-None-08695# If there is no bound graphics+--     pipeline, and both the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>+--     and+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>+--     features are enabled, and a valid+--     'Vulkan.Extensions.Handles.ShaderEXT' is bound the to the+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'+--     stage, and that 'Vulkan.Extensions.Handles.ShaderEXT' was created+--     with the+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_NO_TASK_SHADER_BIT_EXT'+--     flag, there /must/ be no 'Vulkan.Extensions.Handles.ShaderEXT' bound+--     to the+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'+--     stage+--+-- -   #VUID-vkCmdDrawIndirect-None-08696# If there is no bound graphics+--     pipeline, and a valid 'Vulkan.Extensions.Handles.ShaderEXT' is bound+--     to the+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'+--     stage, there /must/ be no 'Vulkan.Extensions.Handles.ShaderEXT'+--     bound to either the+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'+--     stage or the+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'+--     stage+--+-- -   #VUID-vkCmdDrawIndirect-None-08698# If any graphics shader is bound+--     which was created with the+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'+--     flag, then all shaders created with the+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'+--     flag in the same+--     'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call+--     /must/ also be bound+--+-- -   #VUID-vkCmdDrawIndirect-None-08699# If any graphics shader is bound+--     which was created with the+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'+--     flag, any stages in between stages whose shaders which did not+--     create a shader with the+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'+--     flag as part of the same+--     'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call+--     /must/ not have any 'Vulkan.Extensions.Handles.ShaderEXT' bound+--+-- -   #VUID-vkCmdDrawIndirect-None-08878# All bound graphics shader+--     objects /must/ have been created with identical or identically+--     defined push constant ranges+--+-- -   #VUID-vkCmdDrawIndirect-None-08879# All bound graphics shader+--     objects /must/ have been created with identical or identically+--     defined arrays of descriptor set layouts+--+-- -   #VUID-vkCmdDrawIndirect-colorAttachmentCount-09372# If the current+--     render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     and a+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@+--     equal to @1@, a color attachment with a resolve mode of+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',+--     and a fragment shader is bound, it /must/ not declare the+--     @DepthReplacing@ or @StencilRefReplacingEXT@ execution modes+--+-- -   #VUID-vkCmdDrawIndirect-None-08880# If 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-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 not the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'+--     dynamic state enabled, then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'+--     /must/ have been called in the current command buffer prior to this+--     draw command, and the @pStrides@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'+--     /must/ not be @NULL@+--+-- -   #VUID-vkCmdDrawIndirect-None-04914# If 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' or+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to+--     create the current 'Vulkan.Core10.Handles.Pipeline' or+--     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08601# For each push constant+--     that is statically used by+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,+--     a push constant value /must/ have been set for the same pipeline+--     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is+--     compatible for push constants, with the+--     'Vulkan.Core10.Handles.PipelineLayout' or+--     'Vulkan.Core10.Handles.DescriptorSetLayout' and+--     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to+--     create the current 'Vulkan.Core10.Handles.Pipeline' or+--     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>+--+-- -   #VUID-vkCmdDrawIndexedIndirect-maintenance4-08602# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance4 maintenance4>+--     feature is not enabled, then for each push constant that is+--     statically used by+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,+--     a push constant value /must/ have been set for the same pipeline+--     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is+--     compatible for push constants, with the+--     'Vulkan.Core10.Handles.PipelineLayout' or+--     'Vulkan.Core10.Handles.DescriptorSetLayout' and+--     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to+--     create the current 'Vulkan.Core10.Handles.Pipeline' or+--     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08114# Descriptors in each bound+--     descriptor set, specified via 'cmdBindDescriptorSets', /must/ be+--     valid if they are statically used by the+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+--     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'+--     was not created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08115# If the descriptors used+--     by the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind+--     point were specified via 'cmdBindDescriptorSets', the bound+--     'Vulkan.Core10.Handles.Pipeline' /must/ have been created without+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08116# Descriptors in bound+--     descriptor buffers, specified via+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',+--     /must/ be valid if they are dynamically used by the+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+--     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'+--     was created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08604# Descriptors in bound+--     descriptor buffers, specified via+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',+--     /must/ be valid if they are dynamically used by any+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding+--     to the pipeline bind point used by this command+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08117# If the descriptors used+--     by the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind+--     point were specified via+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',+--     the bound 'Vulkan.Core10.Handles.Pipeline' /must/ have been created+--     with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08119# If a descriptor is+--     dynamically used with a 'Vulkan.Core10.Handles.Pipeline' created+--     with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',+--     the descriptor memory /must/ be resident+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08605# If a descriptor is+--     dynamically used with a 'Vulkan.Extensions.Handles.ShaderEXT'+--     created with a 'Vulkan.Core10.Handles.DescriptorSetLayout' that was+--     created with+--     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',+--     the descriptor memory /must/ be resident+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08606# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>+--     feature is not enabled, a valid pipeline /must/ be bound to the+--     pipeline bind point used by this command+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08607# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>+--     is enabled, either a valid pipeline /must/ be bound to the pipeline+--     bind point used by this command, or a valid combination of valid and+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be+--     bound to every supported shader stage corresponding to the pipeline+--     bind point used by this command+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08608# If a pipeline is bound to+--     the pipeline bind point used by this command, there /must/ not have+--     been any calls to dynamic state setting commands for any state not+--     specified as dynamic in the 'Vulkan.Core10.Handles.Pipeline' object+--     bound to the pipeline bind point used by this command, since that+--     pipeline was bound+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08609# If the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command or any+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding+--     to the pipeline bind point used by this command accesses a+--     'Vulkan.Core10.Handles.Sampler' object that uses unnormalized+--     coordinates, that sampler /must/ not be used to sample from any+--     'Vulkan.Core10.Handles.Image' with a+--     'Vulkan.Core10.Handles.ImageView' of the type+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D',+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE',+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D_ARRAY',+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D_ARRAY' or+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY', in+--     any shader stage+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08610# If the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command or any+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding+--     to the pipeline bind point used by this command accesses a+--     'Vulkan.Core10.Handles.Sampler' object that uses unnormalized+--     coordinates, that sampler /must/ not be used with any of the SPIR-V+--     @OpImageSample*@ or @OpImageSparseSample*@ instructions with+--     @ImplicitLod@, @Dref@ or @Proj@ in their name, in any shader stage+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08611# If the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command or any+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding+--     to the pipeline bind point used by this command accesses a+--     'Vulkan.Core10.Handles.Sampler' object that uses unnormalized+--     coordinates, that sampler /must/ not be used with any of the SPIR-V+--     @OpImageSample*@ or @OpImageSparseSample*@ instructions that+--     includes a LOD bias or any offset values, in any shader stage+--+-- -   #VUID-vkCmdDrawIndexedIndirect-uniformBuffers-06935# If any stage of+--     the 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline+--     bind point used by this command accesses a uniform buffer, and that+--     stage was created without enabling either+--     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'+--     or+--     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+--     for @uniformBuffers@, and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+--     feature is not enabled, that stage /must/ not access values outside+--     of the range of the buffer as specified in the descriptor set bound+--     to the same pipeline bind point+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08612# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+--     feature is not enabled, and any+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding+--     to the pipeline bind point used by this command accesses a uniform+--     buffer, it /must/ not access values outside of the range of the+--     buffer as specified in the descriptor set bound to the same pipeline+--     bind point+--+-- -   #VUID-vkCmdDrawIndexedIndirect-storageBuffers-06936# If any stage of+--     the 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline+--     bind point used by this command accesses a storage buffer, and that+--     stage was created without enabling either+--     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'+--     or+--     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+--     for @storageBuffers@, and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+--     feature is not enabled, that stage /must/ not access values outside+--     of the range of the buffer as specified in the descriptor set bound+--     to the same pipeline bind point+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08613# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+--     feature is not enabled, and any+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding+--     to the pipeline bind point used by this command accesses a storage+--     buffer, it /must/ not access values outside of the range of the+--     buffer as specified in the descriptor set bound to the same pipeline+--     bind point+--+-- -   #VUID-vkCmdDrawIndexedIndirect-commandBuffer-02707# If+--     @commandBuffer@ is an unprotected command buffer and+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+--     is not supported, any resource accessed by+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding bound shaders>+--     /must/ not be a protected resource+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-06550# If+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>+--     accesses a 'Vulkan.Core10.Handles.Sampler' or+--     'Vulkan.Core10.Handles.ImageView' object that enables+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,+--     that object /must/ only be used with @OpImageSample*@ or+--     @OpImageSparseSample*@ instructions+--+-- -   #VUID-vkCmdDrawIndexedIndirect-ConstOffset-06551# If+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>+--     accesses a 'Vulkan.Core10.Handles.Sampler' or+--     'Vulkan.Core10.Handles.ImageView' object that enables+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,+--     that object /must/ not use the @ConstOffset@ and @Offset@ operands+--+-- -   #VUID-vkCmdDrawIndexedIndirect-viewType-07752# If a+--     'Vulkan.Core10.Handles.ImageView' is accessed as a result of this+--     command, then the image view’s @viewType@ /must/ match the @Dim@+--     operand of the @OpTypeImage@ as described in+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-operation-validation ???>+--+-- -   #VUID-vkCmdDrawIndexedIndirect-format-07753# If a+--     'Vulkan.Core10.Handles.ImageView' is accessed as a result of this+--     command, then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-numericformat numeric type>+--     of the image view’s @format@ and the @Sampled@ @Type@ operand of the+--     @OpTypeImage@ /must/ match+--+-- -   #VUID-vkCmdDrawIndexedIndirect-OpImageWrite-08795# If a+--     'Vulkan.Core10.Handles.ImageView' created with a format other than+--     'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using+--     @OpImageWrite@ as a result of this command, then the @Type@ of the+--     @Texel@ operand of that instruction /must/ have at least as many+--     components as the image view’s format+--+-- -   #VUID-vkCmdDrawIndexedIndirect-OpImageWrite-08796# If a+--     'Vulkan.Core10.Handles.ImageView' created with the format+--     'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using+--     @OpImageWrite@ as a result of this command, then the @Type@ of the+--     @Texel@ operand of that instruction /must/ have four components+--+-- -   #VUID-vkCmdDrawIndexedIndirect-OpImageWrite-04469# If a+--     'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@+--     as a result of this command, then the @Type@ of the @Texel@ operand+--     of that instruction /must/ have at least as many components as the+--     buffer view’s format+--+-- -   #VUID-vkCmdDrawIndexedIndirect-SampledType-04470# If a+--     'Vulkan.Core10.Handles.ImageView' with a+--     'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component+--     width is accessed as a result of this command, the @SampledType@ of+--     the @OpTypeImage@ operand of that instruction /must/ have a @Width@+--     of 64+--+-- -   #VUID-vkCmdDrawIndexedIndirect-SampledType-04471# If a+--     'Vulkan.Core10.Handles.ImageView' with a+--     'Vulkan.Core10.Enums.Format.Format' that has a component width less+--     than 64-bit is accessed as a result of this command, the+--     @SampledType@ of the @OpTypeImage@ operand of that instruction+--     /must/ have a @Width@ of 32+--+-- -   #VUID-vkCmdDrawIndexedIndirect-SampledType-04472# If a+--     'Vulkan.Core10.Handles.BufferView' with a+--     'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component+--     width is accessed as a result of this command, the @SampledType@ of+--     the @OpTypeImage@ operand of that instruction /must/ have a @Width@+--     of 64+--+-- -   #VUID-vkCmdDrawIndexedIndirect-SampledType-04473# If a+--     'Vulkan.Core10.Handles.BufferView' with a+--     'Vulkan.Core10.Enums.Format.Format' that has a component width less+--     than 64-bit is accessed as a result of this command, the+--     @SampledType@ of the @OpTypeImage@ operand of that instruction+--     /must/ have a @Width@ of 32+--+-- -   #VUID-vkCmdDrawIndexedIndirect-sparseImageInt64Atomics-04474# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>+--     feature is not enabled, 'Vulkan.Core10.Handles.Image' objects+--     created with the+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_RESIDENCY_BIT'+--     flag /must/ not be accessed by atomic instructions through an+--     @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this+--     command+--+-- -   #VUID-vkCmdDrawIndexedIndirect-sparseImageInt64Atomics-04475# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>+--     feature is not enabled, 'Vulkan.Core10.Handles.Buffer' objects+--     created with the+--     'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_SPARSE_RESIDENCY_BIT'+--     flag /must/ not be accessed by atomic instructions through an+--     @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this+--     command+--+-- -   #VUID-vkCmdDrawIndexedIndirect-OpImageWeightedSampleQCOM-06971# If+--     @OpImageWeightedSampleQCOM@ is used to sample a+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then+--     the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM'+--+-- -   #VUID-vkCmdDrawIndexedIndirect-OpImageWeightedSampleQCOM-06972# If+--     @OpImageWeightedSampleQCOM@ uses a 'Vulkan.Core10.Handles.ImageView'+--     as a sample weight image as a result of this command, then the image+--     view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM'+--+-- -   #VUID-vkCmdDrawIndexedIndirect-OpImageBoxFilterQCOM-06973# If+--     @OpImageBoxFilterQCOM@ is used to sample a+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then+--     the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM'+--+-- -   #VUID-vkCmdDrawIndexedIndirect-OpImageBlockMatchSSDQCOM-06974# If+--     @OpImageBlockMatchSSDQCOM@ is used to read from an+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then+--     the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- -   #VUID-vkCmdDrawIndexedIndirect-OpImageBlockMatchSADQCOM-06975# If+--     @OpImageBlockMatchSADQCOM@ is used to read from an+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then+--     the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- -   #VUID-vkCmdDrawIndexedIndirect-OpImageBlockMatchSADQCOM-06976# If+--     @OpImageBlockMatchSADQCOM@ or OpImageBlockMatchSSDQCOM is used to+--     read from a reference image as result of this command, then the+--     specified reference coordinates /must/ not fail+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation integer texel coordinate validation>+--+-- -   #VUID-vkCmdDrawIndexedIndirect-OpImageWeightedSampleQCOM-06977# If+--     @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,+--     @OpImageBlockMatchWindowSSDQCOM@, @OpImageBlockMatchWindowSADQCOM@,+--     @OpImageBlockMatchGatherSSDQCOM@, @OpImageBlockMatchGatherSADQCOM@,+--     @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a+--     'Vulkan.Core10.Handles.Sampler' as a result of this command, then+--     the sampler /must/ have been created with+--     'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'+--+-- -   #VUID-vkCmdDrawIndexedIndirect-OpImageWeightedSampleQCOM-06978# If+--     any command other than @OpImageWeightedSampleQCOM@,+--     @OpImageBoxFilterQCOM@, @OpImageBlockMatchWindowSSDQCOM@,+--     @OpImageBlockMatchWindowSADQCOM@, @OpImageBlockMatchGatherSSDQCOM@,+--     @OpImageBlockMatchGatherSADQCOM@, @OpImageBlockMatchSSDQCOM@, or+--     @OpImageBlockMatchSADQCOM@ uses a 'Vulkan.Core10.Handles.Sampler' as+--     a result of this command, then the sampler /must/ not have been+--     created with+--     'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'+--+-- -   #VUID-vkCmdDrawIndexedIndirect-OpImageBlockMatchWindow-09215# If a+--     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@+--     instruction is used to read from an+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then+--     the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- -   #VUID-vkCmdDrawIndexedIndirect-OpImageBlockMatchWindow-09216# If a+--     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@+--     instruction is used to read from an+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then+--     the image view’s format /must/ be a single-component format.+--+-- -   #VUID-vkCmdDrawIndexedIndirect-OpImageBlockMatchWindow-09217# If a+--     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@+--     read from a reference image as result of this command, then the+--     specified reference coordinates /must/ not fail+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation integer texel coordinate validation>+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07288# Any shader invocation+--     executed by this command /must/+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-termination terminate>+--+-- -   #VUID-vkCmdDrawIndexedIndirect-renderPass-02684# The current render+--     pass /must/ be+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-compatibility compatible>+--     with the @renderPass@ member of the+--     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo' structure+--     specified when creating the 'Vulkan.Core10.Handles.Pipeline' bound+--     to+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'+--+-- -   #VUID-vkCmdDrawIndexedIndirect-subpass-02685# The subpass index of+--     the current render pass /must/ be equal to the @subpass@ member of+--     the 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo' structure+--     specified when creating the 'Vulkan.Core10.Handles.Pipeline' bound+--     to+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07748# If any shader statically+--     accesses an input attachment, a valid descriptor /must/ be bound to+--     the pipeline via a descriptor set+--+-- -   #VUID-vkCmdDrawIndexedIndirect-OpTypeImage-07468# If any shader+--     executed by this pipeline accesses an @OpTypeImage@ variable with a+--     @Dim@ operand of @SubpassData@, it /must/ be decorated with an+--     @InputAttachmentIndex@ that corresponds to a valid input attachment+--     in the current subpass+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07469# Input attachment views+--     accessed in a subpass /must/ be created with the same+--     'Vulkan.Core10.Enums.Format.Format' as the corresponding subpass+--     definition, and be created with a 'Vulkan.Core10.Handles.ImageView'+--     that is compatible with the attachment referenced by the subpass\'+--     @pInputAttachments@[@InputAttachmentIndex@] in the currently bound+--     'Vulkan.Core10.Handles.Framebuffer' as specified by+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#compatibility-inputattachment Fragment Input Attachment Compatibility>+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-06537# Memory backing image+--     subresources used as attachments in the current render pass /must/+--     not be written in any way other than as an attachment by this+--     command+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-09000# If a color attachment is+--     written by any prior command in this subpass or by the load, store,+--     or resolve operations for this subpass, it is not in the+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'+--     image layout, and either:+--+--     -   the+--         'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'+--         is set on the currently bound pipeline or+--+--     -   the last call to+--         'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'+--         included+--         'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'+--         and+--+--         -   there is no currently bound graphics pipeline or+--+--         -   the currently bound graphics pipeline was created with+--             'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'+--             it /must/ not be accessed in any way other than as an+--             attachment by this command+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-09001# If a depth attachment is+--     written by any prior command in this subpass or by the load, store,+--     or resolve operations for this subpass, it is not in the+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'+--     image layout, and either:+--+--     -   the+--         'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'+--         is set on the currently bound pipeline or+--+--     -   the last call to+--         'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'+--         included+--         'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT'+--         and+--+--         -   there is no currently bound graphics pipeline or+--+--         -   the currently bound graphics pipeline was created with+--             'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'+--             it /must/ not be accessed in any way other than as an+--             attachment by this command+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-09002# If a stencil attachment+--     is written by any prior command in this subpass or by the load,+--     store, or resolve operations for this subpass, it is not in the+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'+--     image layout, and either:+--+--     -   the+--         'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'+--         is set on the currently bound pipeline or+--+--     -   the last call to+--         'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'+--         included+--         'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'+--         and+--+--         -   there is no currently bound graphics pipeline or+--+--         -   the currently bound graphics pipeline was created with+--             'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'+--             it /must/ not be accessed in any way other than as an+--             attachment by this command+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-09003# If an attachment is+--     written by any prior command in this subpass or by the load, store,+--     or resolve operations for this subpass, it /must/ not be accessed in+--     any way other than as an attachment, storage image, or sampled image+--     by this command+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-06539# If any previously+--     recorded command in the current subpass accessed an image+--     subresource used as an attachment in this subpass in any way other+--     than as an attachment, this command /must/ not write to that image+--     subresource as an attachment+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-06886# If the current render+--     pass instance uses a depth\/stencil attachment with a read-only+--     layout for the depth aspect,+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-depth-write depth writes>+--     /must/ be disabled+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-06887# If the current render+--     pass instance uses a depth\/stencil attachment with a read-only+--     layout for the stencil aspect, both front and back @writeMask@ are+--     not zero, and stencil test is enabled,+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-stencil all stencil ops>+--     /must/ be 'Vulkan.Core10.Enums.StencilOp.STENCIL_OP_KEEP'+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07831# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT' dynamic+--     state enabled then 'cmdSetViewport' /must/ have been called in the+--     current command buffer prior to this drawing command+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07832# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR' dynamic+--     state enabled then 'cmdSetScissor' /must/ have been called in the+--     current command buffer prior to this drawing command+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07833# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_WIDTH' dynamic+--     state enabled then 'cmdSetLineWidth' /must/ have been called in the+--     current command buffer prior to this drawing command+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08617# If a shader object is+--     bound to any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in 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-sampleLocationsPerPixel-07934# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     state enabled, then the @sampleLocationsPerPixel@ member of+--     @pSampleLocationsInfo@ in the last call to+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ equal the @rasterizationSamples@ member of the+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'+--     structure the bound graphics pipeline has been created with+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07840# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic+--     state enabled then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08627# If a shader object is+--     bound to any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current command buffer set @rasterizerDiscardEnable@ to+--     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07841# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRONT_FACE' dynamic+--     state enabled then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08628# If a shader object is+--     bound to any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current command buffer set @rasterizerDiscardEnable@ to+--     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07843# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE'+--     dynamic state enabled then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08629# If a shader object is+--     bound to any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current command buffer set @rasterizerDiscardEnable@ to+--     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07844# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE'+--     dynamic state enabled then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08630# If a shader object is+--     bound to any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current command buffer set @rasterizerDiscardEnable@ to+--     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07845# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP'+--     dynamic state enabled then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08631# If a shader object is+--     bound to any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current command buffer set @rasterizerDiscardEnable@ to+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable'+--     in the current command buffer set @depthTestEnable@ to+--     'Vulkan.Core10.FundamentalTypes.TRUE', then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07846# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE'+--     dynamic state enabled then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08632# If a shader object is+--     bound to any graphics stage, and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthBounds depthBounds>+--     feature is enabled, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current command buffer set @rasterizerDiscardEnable@ to+--     'Vulkan.Core10.FundamentalTypes.FALSE', then the+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07847# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE'+--     dynamic state enabled then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08633# If a shader object is+--     bound to any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current command buffer set @rasterizerDiscardEnable@ to+--     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07848# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP' dynamic+--     state enabled then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08634# If a shader object is+--     bound to any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current command buffer set @rasterizerDiscardEnable@ to+--     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable'+--     in the current command buffer set @stencilTestEnable@ to+--     'Vulkan.Core10.FundamentalTypes.TRUE', then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexedIndirect-viewportCount-03417# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+--     dynamic state enabled, but not the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'+--     dynamic state enabled, then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the @viewportCount@ parameter of+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--     /must/ match the+--     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@scissorCount@+--     of the pipeline+--+-- -   #VUID-vkCmdDrawIndexedIndirect-scissorCount-03418# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'+--     dynamic state enabled, but not the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+--     dynamic state enabled, then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the @scissorCount@ parameter of+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'+--     /must/ match the+--     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@viewportCount@+--     of the pipeline+--+-- -   #VUID-vkCmdDrawIndexedIndirect-viewportCount-03419# If the bound+--     graphics pipeline state was created with both the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'+--     and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+--     dynamic states enabled then both+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--     and+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the @viewportCount@ parameter of+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--     /must/ match the @scissorCount@ parameter of+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08635# If a shader object is+--     bound to any graphics stage, then both+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--     and+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the @viewportCount@ parameter of+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--     /must/ match the @scissorCount@ parameter of+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'+--+-- -   #VUID-vkCmdDrawIndexedIndirect-viewportCount-04137# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+--     dynamic state enabled, but not the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_NV'+--     dynamic state enabled, then the bound graphics pipeline /must/ have+--     been created with+--     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.PipelineViewportWScalingStateCreateInfoNV'::@viewportCount@+--     greater or equal to the @viewportCount@ parameter in the last call+--     to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- -   #VUID-vkCmdDrawIndexedIndirect-viewportCount-04138# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+--     and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_NV'+--     dynamic states enabled then the @viewportCount@ parameter in the+--     last call to+--     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV'+--     /must/ be greater than or equal to the @viewportCount@ parameter in+--     the last call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-09232# If 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 @VK_AMD_mixed_attachment_samples@ extension, the+--     @VK_NV_framebuffer_mixed_samples@ extension, or the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--     feature is enabled, then @rasterizationSamples@ for the currently+--     bound graphics pipeline /must/ be the same as the current subpass+--     color and\/or depth\/stencil attachments+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08644# If a shader object is+--     bound to any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current command buffer set @rasterizerDiscardEnable@ to+--     'Vulkan.Core10.FundamentalTypes.FALSE', and none of the+--     @VK_AMD_mixed_attachment_samples@ extension, the+--     @VK_NV_framebuffer_mixed_samples@ extension, or the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--     feature is enabled, then the most recent call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--     in the current command buffer /must/ have set @rasterizationSamples@+--     to be the same as the number of samples for the current render pass+--     color and\/or depth\/stencil attachments+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08876# If a shader object is+--     bound to any graphics stage, the current render pass instance /must/+--     have been begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--+-- -   #VUID-vkCmdDrawIndexedIndirect-imageView-06172# If the current+--     render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the @imageView@ member of @pDepthAttachment@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+--     @pDepthAttachment@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL',+--     this command /must/ not write any values to the depth attachment+--+-- -   #VUID-vkCmdDrawIndexedIndirect-imageView-06173# If the current+--     render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the @imageView@ member of @pStencilAttachment@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+--     @pStencilAttachment@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL',+--     this command /must/ not write any values to the stencil attachment+--+-- -   #VUID-vkCmdDrawIndexedIndirect-imageView-06174# If the current+--     render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the @imageView@ member of @pDepthAttachment@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+--     @pDepthAttachment@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL',+--     this command /must/ not write any values to the depth attachment+--+-- -   #VUID-vkCmdDrawIndexedIndirect-imageView-06175# If the current+--     render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the @imageView@ member of @pStencilAttachment@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+--     @pStencilAttachment@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL',+--     this command /must/ not write any values to the stencil attachment+--+-- -   #VUID-vkCmdDrawIndexedIndirect-imageView-06176# If the current+--     render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the @imageView@ member of @pDepthAttachment@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+--     @pDepthAttachment@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL',+--     this command /must/ not write any values to the depth attachment+--+-- -   #VUID-vkCmdDrawIndexedIndirect-imageView-06177# If the current+--     render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the @imageView@ member of @pStencilAttachment@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+--     @pStencilAttachment@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL',+--     this command /must/ not write any values to the stencil attachment+--+-- -   #VUID-vkCmdDrawIndexedIndirect-viewMask-06178# If the current render+--     pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the currently bound graphics pipeline /must/ have been created with+--     a+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@viewMask@+--     equal to+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@viewMask@+--+-- -   #VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-06179# If the+--     current render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the currently bound graphics pipeline /must/ have been created with+--     a+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@colorAttachmentCount@+--     equal to+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@+--+-- -   #VUID-vkCmdDrawIndexedIndirect-dynamicRenderingUnusedAttachments-08910#+--     If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>+--     feature is not enabled, and the current render pass instance was+--     begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@+--     greater than @0@, then each element of the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@+--     array with a @imageView@ not equal to+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created+--     with a 'Vulkan.Core10.Enums.Format.Format' equal to the+--     corresponding element of+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@+--     used to create the currently bound graphics pipeline+--+-- -   #VUID-vkCmdDrawIndexedIndirect-dynamicRenderingUnusedAttachments-08911#+--     If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>+--     feature is enabled, and the current render pass instance was begun+--     with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@+--     greater than @0@, then each element of the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@+--     array with a @imageView@ not equal to+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created+--     with a 'Vulkan.Core10.Enums.Format.Format' equal to the+--     corresponding element of+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@+--     used to create the currently bound graphics pipeline, or the+--     corresponding element of+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,+--     if it exists, /must/ be+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'+--+-- -   #VUID-vkCmdDrawIndexedIndirect-dynamicRenderingUnusedAttachments-08912#+--     If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>+--     feature is not enabled, and the current render pass instance was+--     begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@+--     greater than @0@, then each element of the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@+--     array with a @imageView@ equal to+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have the+--     corresponding element of+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@+--     used to create the currently bound pipeline equal to+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'+--+-- -   #VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-09362# If the+--     current render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     with a+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@+--     equal to @1@, there is no shader object bound to any graphics stage,+--     and a color attachment with a resolve mode of+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',+--     each element of the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@+--     array with a @resolveImageView@ not equal to+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created+--     with an image created with a+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@+--     value equal to the+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@+--     value used to create the currently bound graphics pipeline+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-09363# If there is no shader+--     object bound to any graphics stage, the current render pass instance+--     was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     and a+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@+--     equal to @1@, and a color attachment with a resolve mode of+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',+--     each element of the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@+--     array with a @imageView@ not equal to+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created+--     with an image created with a+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@+--     value equal to the+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@+--     value used to create the currently bound graphics pipeline+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-09364# If the current render+--     pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     there is no shader object bound to any graphics stage, and the+--     currently bound graphics pipeline was created with a non-zero+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@+--     value and with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'+--     dynamic state enabled, then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     /must/ have set the blend enable to+--     'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-09365# If the current render+--     pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     there is no shader object bound to any graphics stage, and the+--     currently bound graphics pipeline was created with a non-zero+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@+--     value and with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     dynamic state enabled, then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--     /must/ have set @rasterizationSamples@ to+--     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior+--     to this drawing command+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-09366# If there is a shader+--     object bound to any graphics stage, and the current render pass+--     includes a color attachment that uses the+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'+--     resolve mode, then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     /must/ have set blend enable to+--     'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command+--+-- -   #VUID-vkCmdDrawIndexedIndirect-rasterizationSamples-09367# If there+--     is a shader object bound to any graphics stage, and the current+--     render pass includes a color attachment that uses the+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'+--     resolve mode, then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--     /must/ have set @rasterizationSamples@ to+--     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior+--     to this drawing command+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-09368# If the current render+--     pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     there is no shader object bound to any graphics stage, and the+--     currently bound graphics pipeline was created with a non-zero+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@+--     value and with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'+--     dynamic state enabled, then+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'+--     /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing+--     command+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-09369# If the current render+--     pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     there is no shader object bound to any graphics stage, and the+--     currently bound graphics pipeline was created with a non-zero+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@+--     value and with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'+--     dynamic state enabled, then+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'+--     /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing+--     command+--+-- -   #VUID-vkCmdDrawIndexedIndirect-pFragmentSize-09370# If there is a+--     shader object bound to any graphics stage, and the current render+--     pass includes a color attachment that uses the+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'+--     resolve mode, then+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'+--     /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing+--     command+--+-- -   #VUID-vkCmdDrawIndexedIndirect-pFragmentSize-09371# If there is a+--     shader object bound to any graphics stage, and the current render+--     pass includes a color attachment that uses the+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'+--     resolve mode, then+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'+--     /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing+--     command+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07749# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08646# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>+--     feature is enabled on the device, and a shader object is bound to+--     the+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'+--     stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current command buffer set @rasterizerDiscardEnable@ to+--     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexedIndirect-attachmentCount-07750# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'+--     dynamic state enabled then the @attachmentCount@ parameter of+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+--     /must/ be greater than or equal to the+--     'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo'::@attachmentCount@+--     of the currently bound graphics pipeline+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08647# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>+--     feature is enabled on the device, and a shader object is bound to+--     the+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'+--     stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current command buffer set @rasterizerDiscardEnable@ to+--     'Vulkan.Core10.FundamentalTypes.FALSE', then the @attachmentCount@+--     parameter of most recent call to+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+--     in the current command buffer /must/ be greater than or equal to the+--     number of color attachments in the current render pass instance+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07751# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command for each discard rectangle in+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.PipelineDiscardRectangleStateCreateInfoEXT'::@discardRectangleCount@+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07880# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexedIndirect-rasterizerDiscardEnable-09236# If the+--     @VK_EXT_discard_rectangles@ extension is enabled, and a shader+--     object is bound to any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current command buffer set @rasterizerDiscardEnable@ to+--     'Vulkan.Core10.FundamentalTypes.FALSE', 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 current render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the currently bound pipeline was created without a+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+--     or+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+--     structure, and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--     feature is not enabled, and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of+--     @rasterizationSamples@ for the currently bound graphics pipeline+--     /must/ be equal to the sample count used to create+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@+--+-- -   #VUID-vkCmdDrawIndexedIndirect-multisampledRenderToSingleSampled-07287#+--     If the current render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the currently bound pipeline was created without a+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+--     or+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+--     structure, and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--     feature is not enabled, and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of+--     @rasterizationSamples@ for the currently bound graphics pipeline+--     /must/ be equal to the sample count used to create+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@+--+-- -   #VUID-vkCmdDrawIndexedIndirect-pNext-07935# If this command has been+--     called inside a render pass instance started with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     and the @pNext@ chain of+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'+--     includes a+--     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'+--     structure with @multisampledRenderToSingleSampledEnable@ equal to+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the value of+--     @rasterizationSamples@ for the currently bound graphics pipeline+--     /must/ be equal to+--     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'::@rasterizationSamples@+--+-- -   #VUID-vkCmdDrawIndexedIndirect-renderPass-06198# If the current+--     render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the currently bound pipeline /must/ have been created with a+--     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@renderPass@+--     equal to 'Vulkan.Core10.APIConstants.NULL_HANDLE'+--+-- -   #VUID-vkCmdDrawIndexedIndirect-pColorAttachments-08963# If the+--     current render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     there is a graphics pipeline bound with a fragment shader that+--     statically writes to a color attachment, the color write mask is not+--     zero, color writes are enabled, and the corresponding element of the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments->imageView@+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the+--     corresponding element of+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@+--     used to create the pipeline /must/ not be+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'+--+-- -   #VUID-vkCmdDrawIndexedIndirect-pDepthAttachment-08964# If the+--     current render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     there is a graphics pipeline bound, depth test is enabled, depth+--     write is enabled, and the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@+--     used to create the pipeline /must/ not be+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'+--+-- -   #VUID-vkCmdDrawIndexedIndirect-pStencilAttachment-08965# If the+--     current render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     there is a graphics pipeline bound, stencil test is enabled and the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@+--     used to create the pipeline /must/ not be+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'+--+-- -   #VUID-vkCmdDrawIndexedIndirect-primitivesGeneratedQueryWithRasterizerDiscard-06708#+--     If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithRasterizerDiscard primitivesGeneratedQueryWithRasterizerDiscard>+--     feature is not enabled and the+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'+--     query is active,+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-discard rasterization discard>+--     /must/ not be enabled+--+-- -   #VUID-vkCmdDrawIndexedIndirect-primitivesGeneratedQueryWithNonZeroStreams-06709#+--     If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams primitivesGeneratedQueryWithNonZeroStreams>+--     feature is not enabled and the+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'+--     query is active, the bound graphics pipeline /must/ not have been+--     created with a non-zero value in+--     'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT'::@rasterizationStream@+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07619# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetTessellationDomainOriginEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07620# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-09237# If a shader object is+--     bound to the+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'+--     stage, then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetTessellationDomainOriginEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08650# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthClamp depthClamp>+--     feature is enabled, and a shader object is bound to any graphics+--     stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current command buffer set @rasterizerDiscardEnable@ to+--     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07621# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_POLYGON_MODE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08651# If a shader object is+--     bound to any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current command buffer set @rasterizerDiscardEnable@ to+--     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07622# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08652# If a shader object is+--     bound to any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current command buffer set @rasterizerDiscardEnable@ to+--     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07623# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08653# If a shader object is+--     bound to any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current command buffer set @rasterizerDiscardEnable@ to+--     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07624# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexedIndirect-alphaToCoverageEnable-08919# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT'+--     dynamic state enabled, and @alphaToCoverageEnable@ was+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutput Fragment Output Interface>+--     /must/ contain a variable for the alpha @Component@ word in+--     @Location@ 0 at @Index@ 0+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08654# If a shader object is+--     bound to any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current command buffer set @rasterizerDiscardEnable@ to+--     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexedIndirect-alphaToCoverageEnable-08920# If a+--     shader object is bound to any graphics stage, and the most recent+--     call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'+--     in the current command buffer set @alphaToCoverageEnable@ to+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutput Fragment Output Interface>+--     /must/ contain a variable for the alpha @Component@ word in+--     @Location@ 0 at @Index@ 0+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07625# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToOneEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08655# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-alphaToOne alphaToOne>+--     feature is enabled, and a shader object is bound to any graphics+--     stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current command buffer set @rasterizerDiscardEnable@ to+--     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToOneEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07626# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLogicOpEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08656# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>+--     feature is enabled, and a shader object is bound to the+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'+--     stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current command buffer set @rasterizerDiscardEnable@ to+--     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLogicOpEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07627# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08657# If a shader object is+--     bound to the+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'+--     stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current command buffer set @rasterizerDiscardEnable@ to+--     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07628# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08658# If a shader object is+--     bound to the+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'+--     stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in 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_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_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_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_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_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_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_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08672# If the+--     @VK_EXT_line_rasterization@ extension is enabled, and a shader+--     object is bound to any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in 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_EXT_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdDrawIndexedIndirect-stippledLineEnable-07496# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--     or+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--     dynamic states enabled, and if the current @stippledLineEnable@+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current+--     @lineRasterizationMode@ state is+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_BRESENHAM_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdDrawIndexedIndirect-stippledLineEnable-07497# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--     or+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--     dynamic states enabled, and if the current @stippledLineEnable@+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current+--     @lineRasterizationMode@ state is+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdDrawIndexedIndirect-stippledLineEnable-07498# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--     or+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--     dynamic states enabled, and if the current @stippledLineEnable@+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current+--     @lineRasterizationMode@ state is+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_DEFAULT_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>+--     feature /must/ be enabled and+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@strictLines@+--     /must/ be 'Vulkan.Core10.FundamentalTypes.TRUE'+--+-- -   #VUID-vkCmdDrawIndexedIndirect-conservativePointAndLineRasterization-07499#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT'+--     dynamic state enabled,+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-conservativePointAndLineRasterization conservativePointAndLineRasterization>+--     is not supported, and the effective primitive topology output by the+--     last pre-rasterization shader stage is a line or point, then the+--     @conservativeRasterizationMode@ set by the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'+--     /must/ be+--     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT'+--+-- -   #VUID-vkCmdDrawIndexedIndirect-stage-07073# If the currently bound+--     pipeline was created with the+--     'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@+--     member of an element of+--     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pStages@ set+--     to+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT',+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT',+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'+--     or+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT',+--     then+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-mesh-shader Mesh Shader Queries>+--     /must/ not be active+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08877# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT'+--     dynamic state+--     'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07850# If dynamic state was+--     inherited from+--     'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV',+--     it /must/ be set in the current command buffer prior to this drawing+--     command+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08684# If there is no bound+--     graphics pipeline,+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/+--     have been called in the current command buffer with @pStages@ with+--     an element of+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08685# If there is no bound+--     graphics pipeline, and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>+--     feature is enabled,+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/+--     have been called in the current command buffer with @pStages@ with+--     an element of+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT'+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08686# If there is no bound+--     graphics pipeline, and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>+--     feature is enabled,+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/+--     have been called in the current command buffer with @pStages@ with+--     an element of+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08687# If there is no bound+--     graphics pipeline, and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader>+--     feature is enabled,+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/+--     have been called in the current command buffer with @pStages@ with+--     an element of+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08688# If there is no bound+--     graphics pipeline,+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/+--     have been called in the current command buffer with @pStages@ with+--     an element of+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08689# If there is no bound+--     graphics pipeline, and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>+--     feature is enabled,+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/+--     have been called in the current command buffer with @pStages@ with+--     an element of+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08690# If there is no bound+--     graphics pipeline, and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>+--     feature is enabled,+--     'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/+--     have been called in the current command buffer with @pStages@ with+--     an element of+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08693# If there is no bound+--     graphics pipeline, and at least one of the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>+--     and+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>+--     features is enabled, one of the+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' or+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'+--     stages /must/ have a valid 'Vulkan.Extensions.Handles.ShaderEXT'+--     bound, and the other /must/ have no+--     'Vulkan.Extensions.Handles.ShaderEXT' bound+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08694# If there is no bound+--     graphics pipeline, and both the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>+--     and+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>+--     features are enabled, and a valid+--     'Vulkan.Extensions.Handles.ShaderEXT' is bound the to the+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'+--     stage, and that 'Vulkan.Extensions.Handles.ShaderEXT' was created+--     without the+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_NO_TASK_SHADER_BIT_EXT'+--     flag, a valid 'Vulkan.Extensions.Handles.ShaderEXT' /must/ be bound+--     to the+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'+--     stage+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08695# If there is no bound+--     graphics pipeline, and both the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>+--     and+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>+--     features are enabled, and a valid+--     'Vulkan.Extensions.Handles.ShaderEXT' is bound the to the+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'+--     stage, and that 'Vulkan.Extensions.Handles.ShaderEXT' was created+--     with the+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_NO_TASK_SHADER_BIT_EXT'+--     flag, there /must/ be no 'Vulkan.Extensions.Handles.ShaderEXT' bound+--     to the+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'+--     stage+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08696# If there is no bound+--     graphics pipeline, and a valid 'Vulkan.Extensions.Handles.ShaderEXT'+--     is bound to the+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'+--     stage, there /must/ be no 'Vulkan.Extensions.Handles.ShaderEXT'+--     bound to either the+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT'+--     stage or the+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'+--     stage+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08698# If any graphics shader is+--     bound which was created with the+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'+--     flag, then all shaders created with the+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'+--     flag in the same+--     'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call+--     /must/ also be bound+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08699# If any graphics shader is+--     bound which was created with the+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'+--     flag, any stages in between stages whose shaders which did not+--     create a shader with the+--     'Vulkan.Extensions.VK_EXT_shader_object.SHADER_CREATE_LINK_STAGE_BIT_EXT'+--     flag as part of the same+--     'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call+--     /must/ not have any 'Vulkan.Extensions.Handles.ShaderEXT' bound+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08878# All bound graphics shader+--     objects /must/ have been created with identical or identically+--     defined push constant ranges+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08879# All bound graphics shader+--     objects /must/ have been created with identical or identically+--     defined arrays of descriptor set layouts+--+-- -   #VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-09372# If the+--     current render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     and a+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@+--     equal to @1@, a color attachment with a resolve mode of+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',+--     and a fragment shader is bound, it /must/ not declare the+--     @DepthReplacing@ or @StencilRefReplacingEXT@ execution modes+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08880# If 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-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 not the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'+--     dynamic state enabled, then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'+--     /must/ have been called in the current command buffer prior to this+--     draw command, and the @pStrides@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'+--     /must/ not be @NULL@+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-04914# If 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# An index buffer /must/ be+--     bound+--+-- -   #VUID-vkCmdDrawIndexedIndirect-robustBufferAccess2-07825# If+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2>+--     is not enabled, (@indexSize@ × (@firstIndex@ + @indexCount@) ++--     @offset@) /must/ be less than or equal to the size of the bound+--     index buffer, with @indexSize@ being based on the type specified by+--     @indexType@, where the index buffer, @indexType@, and @offset@ are+--     specified via 'cmdBindIndexBuffer'+--+-- -   #VUID-vkCmdDrawIndexedIndirect-drawCount-00528# If @drawCount@ is+--     greater than @1@, @stride@ /must/ be a multiple of @4@ and /must/ be+--     greater than or equal to+--     @sizeof@('Vulkan.Core10.OtherTypes.DrawIndexedIndirectCommand')+--+-- -   #VUID-vkCmdDrawIndexedIndirect-drawCount-00539# If @drawCount@ is+--     equal to @1@, (@offset@ ++--     @sizeof@('Vulkan.Core10.OtherTypes.DrawIndexedIndirectCommand'))+--     /must/ be less than or equal to the size of @buffer@+--+-- -   #VUID-vkCmdDrawIndexedIndirect-drawCount-00540# If @drawCount@ is+--     greater than @1@, (@stride@ × (@drawCount@ - 1) + @offset@ ++--     @sizeof@('Vulkan.Core10.OtherTypes.DrawIndexedIndirectCommand'))+--     /must/ be less than or equal to the size of @buffer@+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdDrawIndexedIndirect-commandBuffer-parameter#+--     @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdDrawIndexedIndirect-buffer-parameter# @buffer@ /must/ be+--     a valid 'Vulkan.Core10.Handles.Buffer' handle+--+-- -   #VUID-vkCmdDrawIndexedIndirect-commandBuffer-recording#+--     @commandBuffer@ /must/ be in the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- -   #VUID-vkCmdDrawIndexedIndirect-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- -   #VUID-vkCmdDrawIndexedIndirect-renderpass# This command /must/ only+--     be called inside of a render pass instance+--+-- -   #VUID-vkCmdDrawIndexedIndirect-videocoding# This command /must/ only+--     be called outside of a video coding scope+--+-- -   #VUID-vkCmdDrawIndexedIndirect-commonparent# Both of @buffer@, and+--     @commandBuffer@ /must/ have been created, allocated, or retrieved+--     from the same 'Vulkan.Core10.Handles.Device'+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Inside                                                                                                                 | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize'+cmdDrawIndexedIndirect :: forall io+                        . (MonadIO io)+                       => -- | @commandBuffer@ is the command buffer into which the command is+                          -- recorded.+                          CommandBuffer+                       -> -- | @buffer@ is the buffer containing draw parameters.+                          Buffer+                       -> -- | @offset@ is the byte offset into @buffer@ where parameters begin.+                          ("offset" ::: DeviceSize)+                       -> -- | @drawCount@ is the number of draws to execute, and /can/ be zero.+                          ("drawCount" ::: Word32)+                       -> -- | @stride@ is the byte stride between successive sets of draw parameters.+                          ("stride" ::: Word32)+                       -> io ()+cmdDrawIndexedIndirect commandBuffer+                         buffer+                         offset+                         drawCount+                         stride = liftIO $ do+  let vkCmdDrawIndexedIndirectPtr = pVkCmdDrawIndexedIndirect (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdDrawIndexedIndirectPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDrawIndexedIndirect is null" Nothing Nothing+  let vkCmdDrawIndexedIndirect' = mkVkCmdDrawIndexedIndirect vkCmdDrawIndexedIndirectPtr+  traceAroundEvent "vkCmdDrawIndexedIndirect" (vkCmdDrawIndexedIndirect'+                                                 (commandBufferHandle (commandBuffer))+                                                 (buffer)+                                                 (offset)+                                                 (drawCount)+                                                 (stride))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdDispatch+  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Word32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Word32 -> Word32 -> IO ()++-- | vkCmdDispatch - Dispatch compute work items+--+-- = Description+--+-- When the command is executed, a global workgroup consisting of+-- @groupCountX@ × @groupCountY@ × @groupCountZ@ local workgroups is+-- assembled.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdDispatch-magFilter-04553# If a+--     'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or+--     @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and+--     @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE' is+--     used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+--     this command, then the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+--+-- -   #VUID-vkCmdDispatch-mipmapMode-04770# If a+--     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'+--     and @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE'+--     is used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+--     this command, then the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+--+-- -   #VUID-vkCmdDispatch-None-06479# If a+--     'Vulkan.Core10.Handles.ImageView' is sampled with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-depth-compare-operation depth comparison>,+--     the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT'+--+-- -   #VUID-vkCmdDispatch-None-02691# If a+--     'Vulkan.Core10.Handles.ImageView' is accessed using atomic+--     operations as a result of this command, then the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT'+--+-- -   #VUID-vkCmdDispatch-None-07888# If a+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER'+--     descriptor is accessed using atomic operations as a result of this+--     command, then the storage texel buffer’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-buffer-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT'+--+-- -   #VUID-vkCmdDispatch-None-02692# If a+--     'Vulkan.Core10.Handles.ImageView' is sampled with+--     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this+--     command, then the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'+--+-- -   #VUID-vkCmdDispatch-None-02693# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_filter_cubic VK_EXT_filter_cubic>+--     extension is not enabled and any 'Vulkan.Core10.Handles.ImageView'+--     is sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a+--     result of this command, it /must/ not have a+--     'Vulkan.Core10.Enums.ImageViewType.ImageViewType' of+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D',+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE', or+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY'+--+-- -   #VUID-vkCmdDispatch-filterCubic-02694# Any+--     'Vulkan.Core10.Handles.ImageView' being sampled with+--     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this+--     command /must/ have a+--     'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that+--     supports cubic filtering, as specified by+--     'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubic@+--     returned by+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'+--+-- -   #VUID-vkCmdDispatch-filterCubicMinmax-02695# Any+--     'Vulkan.Core10.Handles.ImageView' being sampled with+--     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' with a reduction mode+--     of either+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'+--     or+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'+--     as a result of this command /must/ have a+--     'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that+--     supports cubic filtering together with minmax filtering, as+--     specified by+--     'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubicMinmax@+--     returned by+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'+--+-- -   #VUID-vkCmdDispatch-cubicRangeClamp-09212# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-range-clamp cubicRangeClamp>+--     feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView'+--     being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as+--     a result of this command /must/ not have a+--     'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'::@reductionMode@+--     equal to+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM'+--+-- -   #VUID-vkCmdDispatch-reductionMode-09213# Any+--     'Vulkan.Core10.Handles.ImageView' being sampled with a+--     'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'::@reductionMode@+--     equal to+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM'+--     as a result of this command /must/ sample with+--     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT'+--+-- -   #VUID-vkCmdDispatch-selectableCubicWeights-09214# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-weight-selection selectableCubicWeights>+--     feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView'+--     being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as+--     a result of this command /must/ have+--     'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.SamplerCubicWeightsCreateInfoQCOM'::@cubicWeights@+--     equal to+--     'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM'+--+-- -   #VUID-vkCmdDispatch-flags-02696# Any 'Vulkan.Core10.Handles.Image'+--     created with a 'Vulkan.Core10.Image.ImageCreateInfo'::@flags@+--     containing+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_CORNER_SAMPLED_BIT_NV'+--     sampled as a result of this command /must/ only be sampled using a+--     'Vulkan.Core10.Enums.SamplerAddressMode.SamplerAddressMode' of+--     'Vulkan.Core10.Enums.SamplerAddressMode.SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE'+--+-- -   #VUID-vkCmdDispatch-OpTypeImage-07027# For any+--     'Vulkan.Core10.Handles.ImageView' being written as a storage image+--     where the image format field of the @OpTypeImage@ is @Unknown@, the+--     view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'+--+-- -   #VUID-vkCmdDispatch-OpTypeImage-07028# For any+--     'Vulkan.Core10.Handles.ImageView' being read as a storage image+--     where the image format field of the @OpTypeImage@ is @Unknown@, the+--     view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT'+--+-- -   #VUID-vkCmdDispatch-OpTypeImage-07029# For any+--     'Vulkan.Core10.Handles.BufferView' being written as a storage texel+--     buffer where the image format field of the @OpTypeImage@ is+--     @Unknown@, the view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'+--+-- -   #VUID-vkCmdDispatch-OpTypeImage-07030# Any+--     'Vulkan.Core10.Handles.BufferView' being read as a storage texel+--     buffer where the image format field of the @OpTypeImage@ is+--     @Unknown@ then the view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT'+--+-- -   #VUID-vkCmdDispatch-None-08600# For each set /n/ that is statically+--     used by+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,+--     a descriptor set /must/ have been bound to /n/ at the same pipeline+--     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is+--     compatible for set /n/, with the+--     'Vulkan.Core10.Handles.PipelineLayout' or+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to+--     create the current 'Vulkan.Core10.Handles.Pipeline' or+--     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>+--+-- -   #VUID-vkCmdDispatch-None-08601# For each push constant that is+--     statically used by+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,+--     a push constant value /must/ have been set for the same pipeline+--     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is+--     compatible for push constants, with the+--     'Vulkan.Core10.Handles.PipelineLayout' or+--     'Vulkan.Core10.Handles.DescriptorSetLayout' and+--     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to+--     create the current 'Vulkan.Core10.Handles.Pipeline' or+--     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>+--+-- -   #VUID-vkCmdDispatch-maintenance4-08602# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance4 maintenance4>+--     feature is not enabled, then for each push constant that is+--     statically used by+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,+--     a push constant value /must/ have been set for the same pipeline+--     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is+--     compatible for push constants, with the+--     'Vulkan.Core10.Handles.PipelineLayout' or+--     'Vulkan.Core10.Handles.DescriptorSetLayout' and+--     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to+--     create the current 'Vulkan.Core10.Handles.Pipeline' or+--     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>+--+-- -   #VUID-vkCmdDispatch-None-08114# Descriptors in each bound descriptor+--     set, specified via 'cmdBindDescriptorSets', /must/ be valid if they+--     are statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to+--     the pipeline bind point used by this command and the bound+--     'Vulkan.Core10.Handles.Pipeline' was not created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDispatch-None-08115# If the descriptors used by the+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+--     were specified via 'cmdBindDescriptorSets', the bound+--     'Vulkan.Core10.Handles.Pipeline' /must/ have been created without+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDispatch-None-08116# Descriptors in bound descriptor+--     buffers, specified via+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',+--     /must/ be valid if they are dynamically used by the+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+--     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'+--     was created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDispatch-None-08604# Descriptors in bound descriptor+--     buffers, specified via+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',+--     /must/ be valid if they are dynamically used by any+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding+--     to the pipeline bind point used by this command+--+-- -   #VUID-vkCmdDispatch-None-08117# If the descriptors used by the+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+--     were specified via+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',+--     the bound 'Vulkan.Core10.Handles.Pipeline' /must/ have been created+--     with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDispatch-None-08119# If a descriptor is dynamically used+--     with a 'Vulkan.Core10.Handles.Pipeline' created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',+--     the descriptor memory /must/ be resident+--+-- -   #VUID-vkCmdDispatch-None-08605# If a descriptor is dynamically used+--     with a 'Vulkan.Extensions.Handles.ShaderEXT' created with a+--     'Vulkan.Core10.Handles.DescriptorSetLayout' that was created with+--     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',+--     the descriptor memory /must/ be resident+--+-- -   #VUID-vkCmdDispatch-None-08606# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>+--     feature is not enabled, a valid pipeline /must/ be bound to the+--     pipeline bind point used by this command+--+-- -   #VUID-vkCmdDispatch-None-08607# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>+--     is enabled, either a valid pipeline /must/ be bound to the pipeline+--     bind point used by this command, or a valid combination of valid and+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be+--     bound to every supported shader stage corresponding to the pipeline+--     bind point used by this command+--+-- -   #VUID-vkCmdDispatch-None-08608# If a pipeline is bound to the+--     pipeline bind point used by this command, there /must/ not have been+--     any calls to dynamic state setting commands for any state not+--     specified as dynamic in the 'Vulkan.Core10.Handles.Pipeline' object+--     bound to the pipeline bind point used by this command, since that+--     pipeline was bound+--+-- -   #VUID-vkCmdDispatch-None-08609# If the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command or any+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding+--     to the pipeline bind point used by this command accesses a+--     'Vulkan.Core10.Handles.Sampler' object that uses unnormalized+--     coordinates, that sampler /must/ not be used to sample from any+--     'Vulkan.Core10.Handles.Image' with a+--     'Vulkan.Core10.Handles.ImageView' of the type+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D',+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE',+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D_ARRAY',+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D_ARRAY' or+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY', in+--     any shader stage+--+-- -   #VUID-vkCmdDispatch-None-08610# If the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command or any+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding+--     to the pipeline bind point used by this command accesses a+--     'Vulkan.Core10.Handles.Sampler' object that uses unnormalized+--     coordinates, that sampler /must/ not be used with any of the SPIR-V+--     @OpImageSample*@ or @OpImageSparseSample*@ instructions with+--     @ImplicitLod@, @Dref@ or @Proj@ in their name, in any shader stage+--+-- -   #VUID-vkCmdDispatch-None-08611# If the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command or any+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding+--     to the pipeline bind point used by this command accesses a+--     'Vulkan.Core10.Handles.Sampler' object that uses unnormalized+--     coordinates, that sampler /must/ not be used with any of the SPIR-V+--     @OpImageSample*@ or @OpImageSparseSample*@ instructions that+--     includes a LOD bias or any offset values, in any shader stage+--+-- -   #VUID-vkCmdDispatch-uniformBuffers-06935# If any stage of the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command accesses a uniform buffer, and that stage+--     was created without enabling either+--     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'+--     or+--     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+--     for @uniformBuffers@, and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+--     feature is not enabled, that stage /must/ not access values outside+--     of the range of the buffer as specified in the descriptor set bound+--     to the same pipeline bind point+--+-- -   #VUID-vkCmdDispatch-None-08612# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+--     feature is not enabled, and any+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding+--     to the pipeline bind point used by this command accesses a uniform+--     buffer, it /must/ not access values outside of the range of the+--     buffer as specified in the descriptor set bound to the same pipeline+--     bind point+--+-- -   #VUID-vkCmdDispatch-storageBuffers-06936# If any stage of the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command accesses a storage buffer, and that stage+--     was created without enabling either+--     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'+--     or+--     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+--     for @storageBuffers@, and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+--     feature is not enabled, that stage /must/ not access values outside+--     of the range of the buffer as specified in the descriptor set bound+--     to the same pipeline bind point+--+-- -   #VUID-vkCmdDispatch-None-08613# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+--     feature is not enabled, and any+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding+--     to the pipeline bind point used by this command accesses a storage+--     buffer, it /must/ not access values outside of the range of the+--     buffer as specified in the descriptor set bound to the same pipeline+--     bind point+--+-- -   #VUID-vkCmdDispatch-commandBuffer-02707# If @commandBuffer@ is an+--     unprotected command buffer and+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+--     is not supported, any resource accessed by+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding bound shaders>+--     /must/ not be a protected resource+--+-- -   #VUID-vkCmdDispatch-None-06550# If+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>+--     accesses a 'Vulkan.Core10.Handles.Sampler' or+--     'Vulkan.Core10.Handles.ImageView' object that enables+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,+--     that object /must/ only be used with @OpImageSample*@ or+--     @OpImageSparseSample*@ instructions+--+-- -   #VUID-vkCmdDispatch-ConstOffset-06551# If+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>+--     accesses a 'Vulkan.Core10.Handles.Sampler' or+--     'Vulkan.Core10.Handles.ImageView' object that enables+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,+--     that object /must/ not use the @ConstOffset@ and @Offset@ operands+--+-- -   #VUID-vkCmdDispatch-viewType-07752# If a+--     'Vulkan.Core10.Handles.ImageView' is accessed as a result of this+--     command, then the image view’s @viewType@ /must/ match the @Dim@+--     operand of the @OpTypeImage@ as described in+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-operation-validation ???>+--+-- -   #VUID-vkCmdDispatch-format-07753# If a+--     'Vulkan.Core10.Handles.ImageView' is accessed as a result of this+--     command, then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-numericformat numeric type>+--     of the image view’s @format@ and the @Sampled@ @Type@ operand of the+--     @OpTypeImage@ /must/ match+--+-- -   #VUID-vkCmdDispatch-OpImageWrite-08795# If a+--     'Vulkan.Core10.Handles.ImageView' created with a format other than+--     'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using+--     @OpImageWrite@ as a result of this command, then the @Type@ of the+--     @Texel@ operand of that instruction /must/ have at least as many+--     components as the image view’s format+--+-- -   #VUID-vkCmdDispatch-OpImageWrite-08796# If a+--     'Vulkan.Core10.Handles.ImageView' created with the format+--     'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using+--     @OpImageWrite@ as a result of this command, then the @Type@ of the+--     @Texel@ operand of that instruction /must/ have four components+--+-- -   #VUID-vkCmdDispatch-OpImageWrite-04469# If a+--     'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@+--     as a result of this command, then the @Type@ of the @Texel@ operand+--     of that instruction /must/ have at least as many components as the+--     buffer view’s format+--+-- -   #VUID-vkCmdDispatch-SampledType-04470# If a+--     'Vulkan.Core10.Handles.ImageView' with a+--     'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component+--     width is accessed as a result of this command, the @SampledType@ of+--     the @OpTypeImage@ operand of that instruction /must/ have a @Width@+--     of 64+--+-- -   #VUID-vkCmdDispatch-SampledType-04471# If a+--     'Vulkan.Core10.Handles.ImageView' with a+--     'Vulkan.Core10.Enums.Format.Format' that has a component width less+--     than 64-bit is accessed as a result of this command, the+--     @SampledType@ of the @OpTypeImage@ operand of that instruction+--     /must/ have a @Width@ of 32+--+-- -   #VUID-vkCmdDispatch-SampledType-04472# If a+--     'Vulkan.Core10.Handles.BufferView' with a+--     'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component+--     width is accessed as a result of this command, the @SampledType@ of+--     the @OpTypeImage@ operand of that instruction /must/ have a @Width@+--     of 64+--+-- -   #VUID-vkCmdDispatch-SampledType-04473# If a+--     'Vulkan.Core10.Handles.BufferView' with a+--     'Vulkan.Core10.Enums.Format.Format' that has a component width less+--     than 64-bit is accessed as a result of this command, the+--     @SampledType@ of the @OpTypeImage@ operand of that instruction+--     /must/ have a @Width@ of 32+--+-- -   #VUID-vkCmdDispatch-sparseImageInt64Atomics-04474# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>+--     feature is not enabled, 'Vulkan.Core10.Handles.Image' objects+--     created with the+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_RESIDENCY_BIT'+--     flag /must/ not be accessed by atomic instructions through an+--     @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this+--     command+--+-- -   #VUID-vkCmdDispatch-sparseImageInt64Atomics-04475# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>+--     feature is not enabled, 'Vulkan.Core10.Handles.Buffer' objects+--     created with the+--     'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_SPARSE_RESIDENCY_BIT'+--     flag /must/ not be accessed by atomic instructions through an+--     @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this+--     command+--+-- -   #VUID-vkCmdDispatch-OpImageWeightedSampleQCOM-06971# If+--     @OpImageWeightedSampleQCOM@ is used to sample a+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then+--     the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM'+--+-- -   #VUID-vkCmdDispatch-OpImageWeightedSampleQCOM-06972# If+--     @OpImageWeightedSampleQCOM@ uses a 'Vulkan.Core10.Handles.ImageView'+--     as a sample weight image as a result of this command, then the image+--     view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM'+--+-- -   #VUID-vkCmdDispatch-OpImageBoxFilterQCOM-06973# If+--     @OpImageBoxFilterQCOM@ is used to sample a+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then+--     the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM'+--+-- -   #VUID-vkCmdDispatch-OpImageBlockMatchSSDQCOM-06974# If+--     @OpImageBlockMatchSSDQCOM@ is used to read from an+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then+--     the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- -   #VUID-vkCmdDispatch-OpImageBlockMatchSADQCOM-06975# If+--     @OpImageBlockMatchSADQCOM@ is used to read from an+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then+--     the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- -   #VUID-vkCmdDispatch-OpImageBlockMatchSADQCOM-06976# If+--     @OpImageBlockMatchSADQCOM@ or OpImageBlockMatchSSDQCOM is used to+--     read from a reference image as result of this command, then the+--     specified reference coordinates /must/ not fail+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation integer texel coordinate validation>+--+-- -   #VUID-vkCmdDispatch-OpImageWeightedSampleQCOM-06977# If+--     @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,+--     @OpImageBlockMatchWindowSSDQCOM@, @OpImageBlockMatchWindowSADQCOM@,+--     @OpImageBlockMatchGatherSSDQCOM@, @OpImageBlockMatchGatherSADQCOM@,+--     @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a+--     'Vulkan.Core10.Handles.Sampler' as a result of this command, then+--     the sampler /must/ have been created with+--     'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'+--+-- -   #VUID-vkCmdDispatch-OpImageWeightedSampleQCOM-06978# If any command+--     other than @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,+--     @OpImageBlockMatchWindowSSDQCOM@, @OpImageBlockMatchWindowSADQCOM@,+--     @OpImageBlockMatchGatherSSDQCOM@, @OpImageBlockMatchGatherSADQCOM@,+--     @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a+--     'Vulkan.Core10.Handles.Sampler' as a result of this command, then+--     the sampler /must/ not have been created with+--     'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'+--+-- -   #VUID-vkCmdDispatch-OpImageBlockMatchWindow-09215# If a+--     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@+--     instruction is used to read from an+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then+--     the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- -   #VUID-vkCmdDispatch-OpImageBlockMatchWindow-09216# If a+--     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@+--     instruction is used to read from an+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then+--     the image view’s format /must/ be a single-component format.+--+-- -   #VUID-vkCmdDispatch-OpImageBlockMatchWindow-09217# If a+--     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@+--     read from a reference image as result of this command, then the+--     specified reference coordinates /must/ not fail+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation integer texel coordinate validation>+--+-- -   #VUID-vkCmdDispatch-None-07288# Any shader invocation executed by+--     this command /must/+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-termination terminate>+--+-- -   #VUID-vkCmdDispatch-commandBuffer-02712# If @commandBuffer@ is a+--     protected command buffer and+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+--     is not supported, any resource written to by the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command /must/ not be an unprotected resource+--+-- -   #VUID-vkCmdDispatch-commandBuffer-02713# If @commandBuffer@ is a+--     protected command buffer and+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+--     is not supported, pipeline stages other than the framebuffer-space+--     and compute stages in the 'Vulkan.Core10.Handles.Pipeline' object+--     bound to the pipeline bind point used by this command /must/ not+--     write to any resource+--+-- -   #VUID-vkCmdDispatch-commandBuffer-04617# If any of the shader stages+--     of the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind+--     point used by this command uses the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-RayQueryKHR RayQueryKHR>+--     capability, then @commandBuffer@ /must/ not be a protected command+--     buffer+--+-- -   #VUID-vkCmdDispatch-groupCountX-00386# @groupCountX@ /must/ be less+--     than or equal to+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxComputeWorkGroupCount@[0]+--+-- -   #VUID-vkCmdDispatch-groupCountY-00387# @groupCountY@ /must/ be less+--     than or equal to+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxComputeWorkGroupCount@[1]+--+-- -   #VUID-vkCmdDispatch-groupCountZ-00388# @groupCountZ@ /must/ be less+--     than or equal to+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxComputeWorkGroupCount@[2]+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdDispatch-commandBuffer-parameter# @commandBuffer@ /must/+--     be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdDispatch-commandBuffer-recording# @commandBuffer@ /must/+--     be in the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- -   #VUID-vkCmdDispatch-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support compute operations+--+-- -   #VUID-vkCmdDispatch-renderpass# This command /must/ only be called+--     outside of a render pass instance+--+-- -   #VUID-vkCmdDispatch-videocoding# This command /must/ only be called+--     outside of a video coding scope+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Compute                                                                                                               | Action                                                                                                                                 |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.CommandBuffer'+cmdDispatch :: forall io+             . (MonadIO io)+            => -- | @commandBuffer@ is the command buffer into which the command will be+               -- recorded.+               CommandBuffer+            -> -- | @groupCountX@ is the number of local workgroups to dispatch in the X+               -- dimension.+               ("groupCountX" ::: Word32)+            -> -- | @groupCountY@ is the number of local workgroups to dispatch in the Y+               -- dimension.+               ("groupCountY" ::: Word32)+            -> -- | @groupCountZ@ is the number of local workgroups to dispatch in the Z+               -- dimension.+               ("groupCountZ" ::: Word32)+            -> io ()+cmdDispatch commandBuffer groupCountX groupCountY groupCountZ = liftIO $ do+  let vkCmdDispatchPtr = pVkCmdDispatch (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdDispatchPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDispatch is null" Nothing Nothing+  let vkCmdDispatch' = mkVkCmdDispatch vkCmdDispatchPtr+  traceAroundEvent "vkCmdDispatch" (vkCmdDispatch'+                                      (commandBufferHandle (commandBuffer))+                                      (groupCountX)+                                      (groupCountY)+                                      (groupCountZ))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdDispatchIndirect+  :: FunPtr (Ptr CommandBuffer_T -> Buffer -> DeviceSize -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> DeviceSize -> IO ()++-- | vkCmdDispatchIndirect - Dispatch compute work items with indirect+-- parameters+--+-- = Description+--+-- 'cmdDispatchIndirect' behaves similarly to 'cmdDispatch' except that the+-- parameters are read by the device from a buffer during execution. The+-- parameters of the dispatch are encoded in a+-- 'Vulkan.Core10.OtherTypes.DispatchIndirectCommand' structure taken from+-- @buffer@ starting at @offset@.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdDispatchIndirect-magFilter-04553# If a+--     'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or+--     @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and+--     @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE' is+--     used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+--     this command, then the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+--+-- -   #VUID-vkCmdDispatchIndirect-mipmapMode-04770# If a+--     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'+--     and @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE'+--     is used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+--     this command, then the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+--+-- -   #VUID-vkCmdDispatchIndirect-None-06479# If a+--     'Vulkan.Core10.Handles.ImageView' is sampled with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-depth-compare-operation depth comparison>,+--     the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT'+--+-- -   #VUID-vkCmdDispatchIndirect-None-02691# If a+--     'Vulkan.Core10.Handles.ImageView' is accessed using atomic+--     operations as a result of this command, then the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT'+--+-- -   #VUID-vkCmdDispatchIndirect-None-07888# If a+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER'+--     descriptor is accessed using atomic operations as a result of this+--     command, then the storage texel buffer’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-buffer-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT'+--+-- -   #VUID-vkCmdDispatchIndirect-None-02692# If a+--     'Vulkan.Core10.Handles.ImageView' is sampled with+--     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this+--     command, then the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'+--+-- -   #VUID-vkCmdDispatchIndirect-None-02693# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_filter_cubic VK_EXT_filter_cubic>+--     extension is not enabled and any 'Vulkan.Core10.Handles.ImageView'+--     is sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a+--     result of this command, it /must/ not have a+--     'Vulkan.Core10.Enums.ImageViewType.ImageViewType' of+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D',+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE', or+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY'+--+-- -   #VUID-vkCmdDispatchIndirect-filterCubic-02694# Any+--     'Vulkan.Core10.Handles.ImageView' being sampled with+--     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this+--     command /must/ have a+--     'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that+--     supports cubic filtering, as specified by+--     'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubic@+--     returned by+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'+--+-- -   #VUID-vkCmdDispatchIndirect-filterCubicMinmax-02695# Any+--     'Vulkan.Core10.Handles.ImageView' being sampled with+--     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' with a reduction mode+--     of either+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'+--     or+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'+--     as a result of this command /must/ have a+--     'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that+--     supports cubic filtering together with minmax filtering, as+--     specified by+--     'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubicMinmax@+--     returned by+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'+--+-- -   #VUID-vkCmdDispatchIndirect-cubicRangeClamp-09212# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-range-clamp cubicRangeClamp>+--     feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView'+--     being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as+--     a result of this command /must/ not have a+--     'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'::@reductionMode@+--     equal to+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM'+--+-- -   #VUID-vkCmdDispatchIndirect-reductionMode-09213# Any+--     'Vulkan.Core10.Handles.ImageView' being sampled with a+--     'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'::@reductionMode@+--     equal to+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM'+--     as a result of this command /must/ sample with+--     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT'+--+-- -   #VUID-vkCmdDispatchIndirect-selectableCubicWeights-09214# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-filter-cubic-weight-selection selectableCubicWeights>+--     feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView'+--     being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as+--     a result of this command /must/ have+--     'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.SamplerCubicWeightsCreateInfoQCOM'::@cubicWeights@+--     equal to+--     'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM'+--+-- -   #VUID-vkCmdDispatchIndirect-flags-02696# Any+--     'Vulkan.Core10.Handles.Image' created with a+--     'Vulkan.Core10.Image.ImageCreateInfo'::@flags@ containing+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_CORNER_SAMPLED_BIT_NV'+--     sampled as a result of this command /must/ only be sampled using a+--     'Vulkan.Core10.Enums.SamplerAddressMode.SamplerAddressMode' of+--     'Vulkan.Core10.Enums.SamplerAddressMode.SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE'+--+-- -   #VUID-vkCmdDispatchIndirect-OpTypeImage-07027# For any+--     'Vulkan.Core10.Handles.ImageView' being written as a storage image+--     where the image format field of the @OpTypeImage@ is @Unknown@, the+--     view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'+--+-- -   #VUID-vkCmdDispatchIndirect-OpTypeImage-07028# For any+--     'Vulkan.Core10.Handles.ImageView' being read as a storage image+--     where the image format field of the @OpTypeImage@ is @Unknown@, the+--     view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT'+--+-- -   #VUID-vkCmdDispatchIndirect-OpTypeImage-07029# For any+--     'Vulkan.Core10.Handles.BufferView' being written as a storage texel+--     buffer where the image format field of the @OpTypeImage@ is+--     @Unknown@, the view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'+--+-- -   #VUID-vkCmdDispatchIndirect-OpTypeImage-07030# Any+--     'Vulkan.Core10.Handles.BufferView' being read as a storage texel+--     buffer where the image format field of the @OpTypeImage@ is+--     @Unknown@ then the view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT'+--+-- -   #VUID-vkCmdDispatchIndirect-None-08600# For each set /n/ that is+--     statically used by+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,+--     a descriptor set /must/ have been bound to /n/ at the same pipeline+--     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is+--     compatible for set /n/, with the+--     'Vulkan.Core10.Handles.PipelineLayout' or+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to+--     create the current 'Vulkan.Core10.Handles.Pipeline' or+--     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>+--+-- -   #VUID-vkCmdDispatchIndirect-None-08601# For each push constant that+--     is statically used by+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,+--     a push constant value /must/ have been set for the same pipeline+--     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is+--     compatible for push constants, with the+--     'Vulkan.Core10.Handles.PipelineLayout' or+--     'Vulkan.Core10.Handles.DescriptorSetLayout' and+--     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to+--     create the current 'Vulkan.Core10.Handles.Pipeline' or+--     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>+--+-- -   #VUID-vkCmdDispatchIndirect-maintenance4-08602# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance4 maintenance4>+--     feature is not enabled, then for each push constant that is+--     statically used by+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>,+--     a push constant value /must/ have been set for the same pipeline+--     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is+--     compatible for push constants, with the+--     'Vulkan.Core10.Handles.PipelineLayout' or+--     'Vulkan.Core10.Handles.DescriptorSetLayout' and+--     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to+--     create the current 'Vulkan.Core10.Handles.Pipeline' or+--     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>+--+-- -   #VUID-vkCmdDispatchIndirect-None-08114# Descriptors in each bound+--     descriptor set, specified via 'cmdBindDescriptorSets', /must/ be+--     valid if they are statically used by the+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+--     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'+--     was not created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDispatchIndirect-None-08115# If the descriptors used by+--     the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind+--     point were specified via 'cmdBindDescriptorSets', the bound+--     'Vulkan.Core10.Handles.Pipeline' /must/ have been created without+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDispatchIndirect-None-08116# Descriptors in bound+--     descriptor buffers, specified via+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',+--     /must/ be valid if they are dynamically used by the+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+--     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'+--     was created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDispatchIndirect-None-08604# Descriptors in bound+--     descriptor buffers, specified via+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',+--     /must/ be valid if they are dynamically used by any+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding+--     to the pipeline bind point used by this command+--+-- -   #VUID-vkCmdDispatchIndirect-None-08117# If the descriptors used by+--     the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind+--     point were specified via+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',+--     the bound 'Vulkan.Core10.Handles.Pipeline' /must/ have been created+--     with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDispatchIndirect-None-08119# If a descriptor is+--     dynamically used with a 'Vulkan.Core10.Handles.Pipeline' created+--     with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',+--     the descriptor memory /must/ be resident+--+-- -   #VUID-vkCmdDispatchIndirect-None-08605# If a descriptor is+--     dynamically used with a 'Vulkan.Extensions.Handles.ShaderEXT'+--     created with a 'Vulkan.Core10.Handles.DescriptorSetLayout' that was+--     created with+--     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',+--     the descriptor memory /must/ be resident+--+-- -   #VUID-vkCmdDispatchIndirect-None-08606# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>+--     feature is not enabled, a valid pipeline /must/ be bound to the+--     pipeline bind point used by this command+--+-- -   #VUID-vkCmdDispatchIndirect-None-08607# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>+--     is enabled, either a valid pipeline /must/ be bound to the pipeline+--     bind point used by this command, or a valid combination of valid and+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be+--     bound to every supported shader stage corresponding to the pipeline+--     bind point used by this command+--+-- -   #VUID-vkCmdDispatchIndirect-None-08608# If a pipeline is bound to+--     the pipeline bind point used by this command, there /must/ not have+--     been any calls to dynamic state setting commands for any state not+--     specified as dynamic in the 'Vulkan.Core10.Handles.Pipeline' object+--     bound to the pipeline bind point used by this command, since that+--     pipeline was bound+--+-- -   #VUID-vkCmdDispatchIndirect-None-08609# If the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command or any+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding+--     to the pipeline bind point used by this command accesses a+--     'Vulkan.Core10.Handles.Sampler' object that uses unnormalized+--     coordinates, that sampler /must/ not be used to sample from any+--     'Vulkan.Core10.Handles.Image' with a+--     'Vulkan.Core10.Handles.ImageView' of the type+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D',+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE',+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D_ARRAY',+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D_ARRAY' or+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY', in+--     any shader stage+--+-- -   #VUID-vkCmdDispatchIndirect-None-08610# If the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command or any+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding+--     to the pipeline bind point used by this command accesses a+--     'Vulkan.Core10.Handles.Sampler' object that uses unnormalized+--     coordinates, that sampler /must/ not be used with any of the SPIR-V+--     @OpImageSample*@ or @OpImageSparseSample*@ instructions with+--     @ImplicitLod@, @Dref@ or @Proj@ in their name, in any shader stage+--+-- -   #VUID-vkCmdDispatchIndirect-None-08611# If the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command or any+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding+--     to the pipeline bind point used by this command accesses a+--     'Vulkan.Core10.Handles.Sampler' object that uses unnormalized+--     coordinates, that sampler /must/ not be used with any of the SPIR-V+--     @OpImageSample*@ or @OpImageSparseSample*@ instructions that+--     includes a LOD bias or any offset values, in any shader stage+--+-- -   #VUID-vkCmdDispatchIndirect-uniformBuffers-06935# If any stage of+--     the 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline+--     bind point used by this command accesses a uniform buffer, and that+--     stage was created without enabling either+--     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'+--     or+--     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+--     for @uniformBuffers@, and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+--     feature is not enabled, that stage /must/ not access values outside+--     of the range of the buffer as specified in the descriptor set bound+--     to the same pipeline bind point+--+-- -   #VUID-vkCmdDispatchIndirect-None-08612# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+--     feature is not enabled, and any+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding+--     to the pipeline bind point used by this command accesses a uniform+--     buffer, it /must/ not access values outside of the range of the+--     buffer as specified in the descriptor set bound to the same pipeline+--     bind point+--+-- -   #VUID-vkCmdDispatchIndirect-storageBuffers-06936# If any stage of+--     the 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline+--     bind point used by this command accesses a storage buffer, and that+--     stage was created without enabling either+--     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'+--     or+--     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+--     for @storageBuffers@, and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+--     feature is not enabled, that stage /must/ not access values outside+--     of the range of the buffer as specified in the descriptor set bound+--     to the same pipeline bind point+--+-- -   #VUID-vkCmdDispatchIndirect-None-08613# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+--     feature is not enabled, and any+--     'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding+--     to the pipeline bind point used by this command accesses a storage+--     buffer, it /must/ not access values outside of the range of the+--     buffer as specified in the descriptor set bound to the same pipeline+--     bind point+--+-- -   #VUID-vkCmdDispatchIndirect-commandBuffer-02707# If @commandBuffer@+--     is an unprotected command buffer and+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+--     is not supported, any resource accessed by+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding bound shaders>+--     /must/ not be a protected resource+--+-- -   #VUID-vkCmdDispatchIndirect-None-06550# If+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>+--     accesses a 'Vulkan.Core10.Handles.Sampler' or+--     'Vulkan.Core10.Handles.ImageView' object that enables+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,+--     that object /must/ only be used with @OpImageSample*@ or+--     @OpImageSparseSample*@ instructions+--+-- -   #VUID-vkCmdDispatchIndirect-ConstOffset-06551# If+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-binding a bound shader>+--     accesses a 'Vulkan.Core10.Handles.Sampler' or+--     'Vulkan.Core10.Handles.ImageView' object that enables+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,+--     that object /must/ not use the @ConstOffset@ and @Offset@ operands+--+-- -   #VUID-vkCmdDispatchIndirect-viewType-07752# If a+--     'Vulkan.Core10.Handles.ImageView' is accessed as a result of this+--     command, then the image view’s @viewType@ /must/ match the @Dim@+--     operand of the @OpTypeImage@ as described in+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-operation-validation ???>+--+-- -   #VUID-vkCmdDispatchIndirect-format-07753# If a+--     'Vulkan.Core10.Handles.ImageView' is accessed as a result of this+--     command, then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-numericformat numeric type>+--     of the image view’s @format@ and the @Sampled@ @Type@ operand of the+--     @OpTypeImage@ /must/ match+--+-- -   #VUID-vkCmdDispatchIndirect-OpImageWrite-08795# If a+--     'Vulkan.Core10.Handles.ImageView' created with a format other than+--     'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using+--     @OpImageWrite@ as a result of this command, then the @Type@ of the+--     @Texel@ operand of that instruction /must/ have at least as many+--     components as the image view’s format+--+-- -   #VUID-vkCmdDispatchIndirect-OpImageWrite-08796# If a+--     'Vulkan.Core10.Handles.ImageView' created with the format+--     'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using+--     @OpImageWrite@ as a result of this command, then the @Type@ of the+--     @Texel@ operand of that instruction /must/ have four components+--+-- -   #VUID-vkCmdDispatchIndirect-OpImageWrite-04469# If a+--     'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@+--     as a result of this command, then the @Type@ of the @Texel@ operand+--     of that instruction /must/ have at least as many components as the+--     buffer view’s format+--+-- -   #VUID-vkCmdDispatchIndirect-SampledType-04470# If a+--     'Vulkan.Core10.Handles.ImageView' with a+--     'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component+--     width is accessed as a result of this command, the @SampledType@ of+--     the @OpTypeImage@ operand of that instruction /must/ have a @Width@+--     of 64+--+-- -   #VUID-vkCmdDispatchIndirect-SampledType-04471# If a+--     'Vulkan.Core10.Handles.ImageView' with a+--     'Vulkan.Core10.Enums.Format.Format' that has a component width less+--     than 64-bit is accessed as a result of this command, the+--     @SampledType@ of the @OpTypeImage@ operand of that instruction+--     /must/ have a @Width@ of 32+--+-- -   #VUID-vkCmdDispatchIndirect-SampledType-04472# If a+--     'Vulkan.Core10.Handles.BufferView' with a+--     'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component+--     width is accessed as a result of this command, the @SampledType@ of+--     the @OpTypeImage@ operand of that instruction /must/ have a @Width@+--     of 64+--+-- -   #VUID-vkCmdDispatchIndirect-SampledType-04473# If a+--     'Vulkan.Core10.Handles.BufferView' with a+--     'Vulkan.Core10.Enums.Format.Format' that has a component width less+--     than 64-bit is accessed as a result of this command, the+--     @SampledType@ of the @OpTypeImage@ operand of that instruction+--     /must/ have a @Width@ of 32+--+-- -   #VUID-vkCmdDispatchIndirect-sparseImageInt64Atomics-04474# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>+--     feature is not enabled, 'Vulkan.Core10.Handles.Image' objects+--     created with the+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_RESIDENCY_BIT'+--     flag /must/ not be accessed by atomic instructions through an+--     @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this+--     command+--+-- -   #VUID-vkCmdDispatchIndirect-sparseImageInt64Atomics-04475# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>+--     feature is not enabled, 'Vulkan.Core10.Handles.Buffer' objects+--     created with the+--     'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_SPARSE_RESIDENCY_BIT'+--     flag /must/ not be accessed by atomic instructions through an+--     @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this+--     command+--+-- -   #VUID-vkCmdDispatchIndirect-OpImageWeightedSampleQCOM-06971# If+--     @OpImageWeightedSampleQCOM@ is used to sample a+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then+--     the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM'+--+-- -   #VUID-vkCmdDispatchIndirect-OpImageWeightedSampleQCOM-06972# If+--     @OpImageWeightedSampleQCOM@ uses a 'Vulkan.Core10.Handles.ImageView'+--     as a sample weight image as a result of this command, then the image+--     view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM'+--+-- -   #VUID-vkCmdDispatchIndirect-OpImageBoxFilterQCOM-06973# If+--     @OpImageBoxFilterQCOM@ is used to sample a+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then+--     the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM'+--+-- -   #VUID-vkCmdDispatchIndirect-OpImageBlockMatchSSDQCOM-06974# If+--     @OpImageBlockMatchSSDQCOM@ is used to read from an+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then+--     the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- -   #VUID-vkCmdDispatchIndirect-OpImageBlockMatchSADQCOM-06975# If+--     @OpImageBlockMatchSADQCOM@ is used to read from an+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then+--     the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- -   #VUID-vkCmdDispatchIndirect-OpImageBlockMatchSADQCOM-06976# If+--     @OpImageBlockMatchSADQCOM@ or OpImageBlockMatchSSDQCOM is used to+--     read from a reference image as result of this command, then the+--     specified reference coordinates /must/ not fail+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation integer texel coordinate validation>+--+-- -   #VUID-vkCmdDispatchIndirect-OpImageWeightedSampleQCOM-06977# If+--     @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,+--     @OpImageBlockMatchWindowSSDQCOM@, @OpImageBlockMatchWindowSADQCOM@,+--     @OpImageBlockMatchGatherSSDQCOM@, @OpImageBlockMatchGatherSADQCOM@,+--     @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a+--     'Vulkan.Core10.Handles.Sampler' as a result of this command, then+--     the sampler /must/ have been created with+--     'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'+--+-- -   #VUID-vkCmdDispatchIndirect-OpImageWeightedSampleQCOM-06978# If any+--     command other than @OpImageWeightedSampleQCOM@,+--     @OpImageBoxFilterQCOM@, @OpImageBlockMatchWindowSSDQCOM@,+--     @OpImageBlockMatchWindowSADQCOM@, @OpImageBlockMatchGatherSSDQCOM@,+--     @OpImageBlockMatchGatherSADQCOM@, @OpImageBlockMatchSSDQCOM@, or+--     @OpImageBlockMatchSADQCOM@ uses a 'Vulkan.Core10.Handles.Sampler' as+--     a result of this command, then the sampler /must/ not have been+--     created with+--     'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'+--+-- -   #VUID-vkCmdDispatchIndirect-OpImageBlockMatchWindow-09215# If a+--     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@+--     instruction is used to read from an+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then+--     the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- -   #VUID-vkCmdDispatchIndirect-OpImageBlockMatchWindow-09216# If a+--     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@+--     instruction is used to read from an+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then+--     the image view’s format /must/ be a single-component format.+--+-- -   #VUID-vkCmdDispatchIndirect-OpImageBlockMatchWindow-09217# If a+--     @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@+--     read from a reference image as result of this command, then the+--     specified reference coordinates /must/ not fail+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation integer texel coordinate validation>+--+-- -   #VUID-vkCmdDispatchIndirect-None-07288# Any shader invocation+--     executed by this command /must/+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-termination terminate>+--+-- -   #VUID-vkCmdDispatchIndirect-buffer-02708# If @buffer@ is non-sparse+--     then it /must/ be bound completely and contiguously to a single+--     'Vulkan.Core10.Handles.DeviceMemory' object+--+-- -   #VUID-vkCmdDispatchIndirect-buffer-02709# @buffer@ /must/ have been+--     created with the+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDIRECT_BUFFER_BIT'+--     bit set+--+-- -   #VUID-vkCmdDispatchIndirect-offset-02710# @offset@ /must/ be a+--     multiple of @4@+--+-- -   #VUID-vkCmdDispatchIndirect-commandBuffer-02711# @commandBuffer@+--     /must/ not be a protected command buffer+--+-- -   #VUID-vkCmdDispatchIndirect-offset-00407# The sum of @offset@ and+--     the size of 'Vulkan.Core10.OtherTypes.DispatchIndirectCommand'+--     /must/ be less than or equal to the size of @buffer@+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdDispatchIndirect-commandBuffer-parameter# @commandBuffer@+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdDispatchIndirect-buffer-parameter# @buffer@ /must/ be a+--     valid 'Vulkan.Core10.Handles.Buffer' handle+--+-- -   #VUID-vkCmdDispatchIndirect-commandBuffer-recording# @commandBuffer@+--     /must/ be in the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- -   #VUID-vkCmdDispatchIndirect-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support compute operations+--+-- -   #VUID-vkCmdDispatchIndirect-renderpass# This command /must/ only be+--     called outside of a render pass instance+--+-- -   #VUID-vkCmdDispatchIndirect-videocoding# This command /must/ only be+--     called outside of a video coding scope+--+-- -   #VUID-vkCmdDispatchIndirect-commonparent# Both of @buffer@, and+--     @commandBuffer@ /must/ have been created, allocated, or retrieved+--     from the same 'Vulkan.Core10.Handles.Device'+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Compute                                                                                                               | Action                                                                                                                                 |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize'+cmdDispatchIndirect :: forall io+                     . (MonadIO io)+                    => -- | @commandBuffer@ is the command buffer into which the command will be+                       -- recorded.+                       CommandBuffer+                    -> -- | @buffer@ is the buffer containing dispatch parameters.+                       Buffer+                    -> -- | @offset@ is the byte offset into @buffer@ where parameters begin.+                       ("offset" ::: DeviceSize)+                    -> io ()+cmdDispatchIndirect commandBuffer buffer offset = liftIO $ do+  let vkCmdDispatchIndirectPtr = pVkCmdDispatchIndirect (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdDispatchIndirectPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDispatchIndirect is null" Nothing Nothing+  let vkCmdDispatchIndirect' = mkVkCmdDispatchIndirect vkCmdDispatchIndirectPtr+  traceAroundEvent "vkCmdDispatchIndirect" (vkCmdDispatchIndirect'+                                              (commandBufferHandle (commandBuffer))+                                              (buffer)+                                              (offset))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdCopyBuffer+  :: FunPtr (Ptr CommandBuffer_T -> Buffer -> Buffer -> Word32 -> Ptr BufferCopy -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> Buffer -> Word32 -> Ptr BufferCopy -> IO ()++-- | vkCmdCopyBuffer - Copy data between buffer regions+--+-- = Description+--+-- Each source region specified by @pRegions@ is copied from the source+-- buffer to the destination region of the destination buffer. If any of+-- the specified regions in @srcBuffer@ overlaps in memory with any of the+-- specified regions in @dstBuffer@, values read from those overlapping+-- regions are undefined.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdCopyBuffer-commandBuffer-01822# If @commandBuffer@ is an+--     unprotected command buffer and+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+--     is not supported, @srcBuffer@ /must/ not be a protected buffer+--+-- -   #VUID-vkCmdCopyBuffer-commandBuffer-01823# If @commandBuffer@ is an+--     unprotected command buffer and+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+--     is not supported, @dstBuffer@ /must/ not be a protected buffer+--+-- -   #VUID-vkCmdCopyBuffer-commandBuffer-01824# If @commandBuffer@ is a+--     protected command buffer and+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+--     is not supported, @dstBuffer@ /must/ not be an unprotected buffer+--+-- -   #VUID-vkCmdCopyBuffer-srcOffset-00113# The @srcOffset@ member of+--     each element of @pRegions@ /must/ be less than the size of+--     @srcBuffer@+--+-- -   #VUID-vkCmdCopyBuffer-dstOffset-00114# The @dstOffset@ member of+--     each element of @pRegions@ /must/ be less than the size of+--     @dstBuffer@+--+-- -   #VUID-vkCmdCopyBuffer-size-00115# The @size@ member of each element+--     of @pRegions@ /must/ be less than or equal to the size of+--     @srcBuffer@ minus @srcOffset@+--+-- -   #VUID-vkCmdCopyBuffer-size-00116# The @size@ member of each element+--     of @pRegions@ /must/ be less than or equal to the size of+--     @dstBuffer@ minus @dstOffset@+--+-- -   #VUID-vkCmdCopyBuffer-pRegions-00117# The union of the source+--     regions, and the union of the destination regions, specified by the+--     elements of @pRegions@, /must/ not overlap in memory+--+-- -   #VUID-vkCmdCopyBuffer-srcBuffer-00118# @srcBuffer@ /must/ have been+--     created with+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_SRC_BIT'+--     usage flag+--+-- -   #VUID-vkCmdCopyBuffer-srcBuffer-00119# If @srcBuffer@ is non-sparse+--     then it /must/ be bound completely and contiguously to a single+--     'Vulkan.Core10.Handles.DeviceMemory' object+--+-- -   #VUID-vkCmdCopyBuffer-dstBuffer-00120# @dstBuffer@ /must/ have been+--     created with+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_DST_BIT'+--     usage flag+--+-- -   #VUID-vkCmdCopyBuffer-dstBuffer-00121# If @dstBuffer@ is non-sparse+--     then it /must/ be bound completely and contiguously to a single+--     'Vulkan.Core10.Handles.DeviceMemory' object+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdCopyBuffer-commandBuffer-parameter# @commandBuffer@+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdCopyBuffer-srcBuffer-parameter# @srcBuffer@ /must/ be a+--     valid 'Vulkan.Core10.Handles.Buffer' handle+--+-- -   #VUID-vkCmdCopyBuffer-dstBuffer-parameter# @dstBuffer@ /must/ be a+--     valid 'Vulkan.Core10.Handles.Buffer' handle+--+-- -   #VUID-vkCmdCopyBuffer-pRegions-parameter# @pRegions@ /must/ be a+--     valid pointer to an array of @regionCount@ valid 'BufferCopy'+--     structures+--+-- -   #VUID-vkCmdCopyBuffer-commandBuffer-recording# @commandBuffer@+--     /must/ be in the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- -   #VUID-vkCmdCopyBuffer-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support transfer, graphics, or compute+--     operations+--+-- -   #VUID-vkCmdCopyBuffer-renderpass# This command /must/ only be called+--     outside of a render pass instance+--+-- -   #VUID-vkCmdCopyBuffer-videocoding# This command /must/ only be+--     called outside of a video coding scope+--+-- -   #VUID-vkCmdCopyBuffer-regionCount-arraylength# @regionCount@ /must/+--     be greater than @0@+--+-- -   #VUID-vkCmdCopyBuffer-commonparent# Each of @commandBuffer@,+--     @dstBuffer@, and @srcBuffer@ /must/ have been created, allocated, or+--     retrieved from the same 'Vulkan.Core10.Handles.Device'+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Transfer                                                                                                              | Action                                                                                                                                 |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Graphics                                                                                                              |                                                                                                                                        |+-- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Compute                                                                                                               |                                                                                                                                        |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.Buffer', 'BufferCopy',+-- 'Vulkan.Core10.Handles.CommandBuffer'+cmdCopyBuffer :: forall io+               . (MonadIO io)+              => -- | @commandBuffer@ is the command buffer into which the command will be+                 -- recorded.+                 CommandBuffer+              -> -- | @srcBuffer@ is the source buffer.+                 ("srcBuffer" ::: Buffer)+              -> -- | @dstBuffer@ is the destination buffer.+                 ("dstBuffer" ::: Buffer)+              -> -- | @pRegions@ is a pointer to an array of 'BufferCopy' structures+                 -- specifying the regions to copy.+                 ("regions" ::: Vector BufferCopy)+              -> io ()+cmdCopyBuffer commandBuffer+                srcBuffer+                dstBuffer+                regions = liftIO . evalContT $ do+  let vkCmdCopyBufferPtr = pVkCmdCopyBuffer (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  lift $ unless (vkCmdCopyBufferPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdCopyBuffer is null" Nothing Nothing+  let vkCmdCopyBuffer' = mkVkCmdCopyBuffer vkCmdCopyBufferPtr+  pPRegions <- ContT $ allocaBytes @BufferCopy ((Data.Vector.length (regions)) * 24)+  lift $ Data.Vector.imapM_ (\i e -> poke (pPRegions `plusPtr` (24 * (i)) :: Ptr BufferCopy) (e)) (regions)+  lift $ traceAroundEvent "vkCmdCopyBuffer" (vkCmdCopyBuffer'+                                               (commandBufferHandle (commandBuffer))+                                               (srcBuffer)+                                               (dstBuffer)+                                               ((fromIntegral (Data.Vector.length $ (regions)) :: Word32))+                                               (pPRegions))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdCopyImage+  :: FunPtr (Ptr CommandBuffer_T -> Image -> ImageLayout -> Image -> ImageLayout -> Word32 -> Ptr ImageCopy -> IO ()) -> Ptr CommandBuffer_T -> Image -> ImageLayout -> Image -> ImageLayout -> Word32 -> Ptr ImageCopy -> IO ()++-- | vkCmdCopyImage - Copy data between images+--+-- = Description+--+-- Each source region specified by @pRegions@ is copied from the source+-- image to the destination region of the destination image. If any of the+-- specified regions in @srcImage@ overlaps in memory with any of the+-- specified regions in @dstImage@, values read from those overlapping+-- regions are undefined.+--+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion Multi-planar images>+-- /can/ only be copied on a per-plane basis, and the subresources used in+-- each region when copying to or from such images /must/ specify only one+-- plane, though different regions /can/ specify different planes. When+-- copying planes of multi-planar images, the format considered is the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-compatible-planes compatible format for that plane>,+-- rather than the format of the multi-planar image.+--+-- If the format of the destination image has a different+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-compatibility-classes block extent>+-- than the source image (e.g. one is a compressed format), the offset and+-- extent for each of the regions specified is+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-size-compatibility scaled according to the block extents of each format>+-- to match in size. Copy regions for each image /must/ be aligned to a+-- multiple of the texel block extent in each dimension, except at the+-- edges of the image, where region extents /must/ match the edge of the+-- image.+--+-- Image data /can/ be copied between images with different image types. If+-- one image is 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D' and the other+-- image is 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D' with multiple+-- layers, then each slice is copied to or from a different layer; @depth@+-- slices in the 3D image correspond to @layerCount@ layers in the 2D+-- image, with an effective @depth@ of @1@ used for the 2D image. If+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-maintenance5 maintenance5>+-- is enabled, all other combinations are allowed and function as if 1D+-- images are 2D images with a height of 1. Otherwise, other combinations+-- of image types are disallowed.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdCopyImage-commandBuffer-01825# If @commandBuffer@ is an+--     unprotected command buffer and+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+--     is not supported, @srcImage@ /must/ not be a protected image+--+-- -   #VUID-vkCmdCopyImage-commandBuffer-01826# If @commandBuffer@ is an+--     unprotected command buffer and+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+--     is not supported, @dstImage@ /must/ not be a protected image+--+-- -   #VUID-vkCmdCopyImage-commandBuffer-01827# If @commandBuffer@ is a+--     protected command buffer and+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+--     is not supported, @dstImage@ /must/ not be an unprotected image+--+-- -   #VUID-vkCmdCopyImage-pRegions-00124# The union of all source+--     regions, and the union of all destination regions, specified by the+--     elements of @pRegions@, /must/ not overlap in memory+--+-- -   #VUID-vkCmdCopyImage-srcImage-01995# The+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>+--     of @srcImage@ /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_TRANSFER_SRC_BIT'+--+-- -   #VUID-vkCmdCopyImage-srcImageLayout-00128# @srcImageLayout@ /must/+--     specify the layout of the image subresources of @srcImage@ specified+--     in @pRegions@ at the time this command is executed on a+--     'Vulkan.Core10.Handles.Device'+--+-- -   #VUID-vkCmdCopyImage-srcImageLayout-01917# @srcImageLayout@ /must/+--     be+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR',+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL',+--     or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL'+--+-- -   #VUID-vkCmdCopyImage-dstImage-01996# The+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>+--     of @dstImage@ /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_TRANSFER_DST_BIT'+--+-- -   #VUID-vkCmdCopyImage-dstImageLayout-00133# @dstImageLayout@ /must/+--     specify the layout of the image subresources of @dstImage@ specified+--     in @pRegions@ at the time this command is executed on a+--     'Vulkan.Core10.Handles.Device'+--+-- -   #VUID-vkCmdCopyImage-dstImageLayout-01395# @dstImageLayout@ /must/+--     be+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR',+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL',+--     or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL'+--+-- -   #VUID-vkCmdCopyImage-srcImage-01548# If the+--     'Vulkan.Core10.Enums.Format.Format' of each of @srcImage@ and+--     @dstImage@ is not a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,+--     the 'Vulkan.Core10.Enums.Format.Format' of each of @srcImage@ and+--     @dstImage@ /must/ be+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-size-compatibility size-compatible>+--+-- -   #VUID-vkCmdCopyImage-None-01549# In a copy to or from a plane of a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar image>,+--     the 'Vulkan.Core10.Enums.Format.Format' of the image and plane+--     /must/ be compatible according to+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatible-planes the description of compatible planes>+--     for the plane being copied+--+-- -   #VUID-vkCmdCopyImage-srcImage-09247# If the+--     'Vulkan.Core10.Enums.Format.Format' of each of @srcImage@ and+--     @dstImage@ is a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#compressed_image_formats compressed image format>,+--     the formats /must/ have the same texel block extent+--+-- -   #VUID-vkCmdCopyImage-srcImage-00136# The sample count of @srcImage@+--     and @dstImage@ /must/ match+--+-- -   #VUID-vkCmdCopyImage-srcOffset-01783# The @srcOffset@ and @extent@+--     members of each element of @pRegions@ /must/ respect the image+--     transfer granularity requirements of @commandBuffer@’s command+--     pool’s queue family, as described in+--     'Vulkan.Core10.DeviceInitialization.QueueFamilyProperties'+--+-- -   #VUID-vkCmdCopyImage-dstOffset-01784# The @dstOffset@ and @extent@+--     members of each element of @pRegions@ /must/ respect the image+--     transfer granularity requirements of @commandBuffer@’s command+--     pool’s queue family, as described in+--     'Vulkan.Core10.DeviceInitialization.QueueFamilyProperties'+--+-- -   #VUID-vkCmdCopyImage-srcImage-01551# If neither @srcImage@ nor+--     @dstImage@ has a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar image format>+--     then for each element of @pRegions@, @srcSubresource.aspectMask@ and+--     @dstSubresource.aspectMask@ /must/ match+--+-- -   #VUID-vkCmdCopyImage-srcImage-08713# If @srcImage@ has a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar image format>,+--     then for each element of @pRegions@, @srcSubresource.aspectMask@+--     /must/ be a single valid+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-planes-image-aspect multi-planar aspect mask>+--     bit+--+-- -   #VUID-vkCmdCopyImage-dstImage-08714# If @dstImage@ has a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar image format>,+--     then for each element of @pRegions@, @dstSubresource.aspectMask@+--     /must/ be a single valid+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-planes-image-aspect multi-planar aspect mask>+--     bit+--+-- -   #VUID-vkCmdCopyImage-srcImage-01556# If @srcImage@ has a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar image format>+--     and the @dstImage@ does not have a multi-planar image format, then+--     for each element of @pRegions@, @dstSubresource.aspectMask@ /must/+--     be 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'+--+-- -   #VUID-vkCmdCopyImage-dstImage-01557# If @dstImage@ has a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar image format>+--     and the @srcImage@ does not have a multi-planar image format, then+--     for each element of @pRegions@, @srcSubresource.aspectMask@ /must/+--     be 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'+--+-- -   #VUID-vkCmdCopyImage-apiVersion-07932# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance1 VK_KHR_maintenance1>+--     extension is not enabled, or+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceProperties'::@apiVersion@+--     is less than Vulkan 1.1, and either @srcImage@ or @dstImage@ is of+--     type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each+--     element of @pRegions@, @srcSubresource.baseArrayLayer@ and+--     @dstSubresource.baseArrayLayer@ /must/ both be @0@, and+--     @srcSubresource.layerCount@ and @dstSubresource.layerCount@ /must/+--     both be @1@+--+-- -   #VUID-vkCmdCopyImage-srcImage-04443# If @srcImage@ is of type+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each element+--     of @pRegions@, @srcSubresource.baseArrayLayer@ /must/ be @0@ and+--     @srcSubresource.layerCount@ /must/ be @1@+--+-- -   #VUID-vkCmdCopyImage-dstImage-04444# If @dstImage@ is of type+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each element+--     of @pRegions@, @dstSubresource.baseArrayLayer@ /must/ be @0@ and+--     @dstSubresource.layerCount@ /must/ be @1@+--+-- -   #VUID-vkCmdCopyImage-aspectMask-00142# For each element of+--     @pRegions@, @srcSubresource.aspectMask@ /must/ specify aspects+--     present in @srcImage@+--+-- -   #VUID-vkCmdCopyImage-aspectMask-00143# For each element of+--     @pRegions@, @dstSubresource.aspectMask@ /must/ specify aspects+--     present in @dstImage@+--+-- -   #VUID-vkCmdCopyImage-srcOffset-00144# For each element of+--     @pRegions@, @srcOffset.x@ and (@extent.width@ + @srcOffset.x@)+--     /must/ both be greater than or equal to @0@ and less than or equal+--     to the width of the specified @srcSubresource@ of @srcImage@+--+-- -   #VUID-vkCmdCopyImage-srcOffset-00145# For each element of+--     @pRegions@, @srcOffset.y@ and (@extent.height@ + @srcOffset.y@)+--     /must/ both be greater than or equal to @0@ and less than or equal+--     to the height of the specified @srcSubresource@ of @srcImage@+--+-- -   #VUID-vkCmdCopyImage-srcImage-00146# If @srcImage@ is of type+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element+--     of @pRegions@, @srcOffset.y@ /must/ be @0@ and @extent.height@+--     /must/ be @1@+--+-- -   #VUID-vkCmdCopyImage-srcOffset-00147# If @srcImage@ is of type+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each element+--     of @pRegions@, @srcOffset.z@ and (@extent.depth@ + @srcOffset.z@)+--     /must/ both be greater than or equal to @0@ and less than or equal+--     to the depth of the specified @srcSubresource@ of @srcImage@+--+-- -   #VUID-vkCmdCopyImage-srcImage-01785# If @srcImage@ is of type+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element+--     of @pRegions@, @srcOffset.z@ /must/ be @0@ and @extent.depth@ /must/+--     be @1@+--+-- -   #VUID-vkCmdCopyImage-dstImage-01786# If @dstImage@ is of type+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element+--     of @pRegions@, @dstOffset.z@ /must/ be @0@ and @extent.depth@ /must/+--     be @1@+--+-- -   #VUID-vkCmdCopyImage-srcImage-01787# If @srcImage@ is of type+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element+--     of @pRegions@, @srcOffset.z@ /must/ be @0@+--+-- -   #VUID-vkCmdCopyImage-dstImage-01788# If @dstImage@ is of type+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element+--     of @pRegions@, @dstOffset.z@ /must/ be @0@+--+-- -   #VUID-vkCmdCopyImage-apiVersion-07933# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance1 VK_KHR_maintenance1>+--     extension is not enabled, and+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceProperties'::@apiVersion@+--     is less than Vulkan 1.1, @srcImage@ and @dstImage@ /must/ have the+--     same 'Vulkan.Core10.Enums.ImageType.ImageType'+--+-- -   #VUID-vkCmdCopyImage-apiVersion-08969# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance1 VK_KHR_maintenance1>+--     extension is not enabled, and+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceProperties'::@apiVersion@+--     is less than Vulkan 1.1, @srcImage@ or @dstImage@ is of type+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element+--     of @pRegions@, @extent.depth@ /must/ be @1@+--+-- -   #VUID-vkCmdCopyImage-srcImage-07743# If @srcImage@ and @dstImage@+--     have a different 'Vulkan.Core10.Enums.ImageType.ImageType', and+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance5 maintenance5>+--     is not enabled, one /must/ be+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D' and the other /must/+--     be 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D'+--+-- -   #VUID-vkCmdCopyImage-srcImage-08793# If @srcImage@ and @dstImage@+--     have the same 'Vulkan.Core10.Enums.ImageType.ImageType', for each+--     element of @pRegions@, if neither of the @layerCount@ members of+--     @srcSubresource@ or @dstSubresource@ are+--     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS', the+--     @layerCount@ members of @srcSubresource@ or @dstSubresource@ /must/+--     match+--+-- -   #VUID-vkCmdCopyImage-maintenance5-08792# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance5 maintenance5>+--     feature is not enabled, the @layerCount@ member of @srcSubresource@+--     or @dstSubresource@ /must/ not be+--     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS'+--+-- -   #VUID-vkCmdCopyImage-srcImage-08794# If @srcImage@ and @dstImage@+--     have the same 'Vulkan.Core10.Enums.ImageType.ImageType', and one of+--     the @layerCount@ members of @srcSubresource@ or @dstSubresource@ is+--     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS', the other+--     member /must/ be either+--     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' or equal to the+--     @arrayLayers@ member of the 'Vulkan.Core10.Image.ImageCreateInfo'+--     used to create the image minus @baseArrayLayer@+--+-- -   #VUID-vkCmdCopyImage-srcImage-01790# If @srcImage@ and @dstImage@+--     are both of type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then+--     for each element of @pRegions@, @extent.depth@ /must/ be @1@+--+-- -   #VUID-vkCmdCopyImage-srcImage-01791# If @srcImage@ is of type+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', and @dstImage@ is of+--     type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each+--     element of @pRegions@, @extent.depth@ /must/ equal+--     @srcSubresource.layerCount@+--+-- -   #VUID-vkCmdCopyImage-dstImage-01792# If @dstImage@ is of type+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', and @srcImage@ is of+--     type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each+--     element of @pRegions@, @extent.depth@ /must/ equal+--     @dstSubresource.layerCount@+--+-- -   #VUID-vkCmdCopyImage-dstOffset-00150# For each element of+--     @pRegions@, @dstOffset.x@ and (@extent.width@ + @dstOffset.x@)+--     /must/ both be greater than or equal to @0@ and less than or equal+--     to the width of the specified @dstSubresource@ of @dstImage@+--+-- -   #VUID-vkCmdCopyImage-dstOffset-00151# For each element of+--     @pRegions@, @dstOffset.y@ and (@extent.height@ + @dstOffset.y@)+--     /must/ both be greater than or equal to @0@ and less than or equal+--     to the height of the specified @dstSubresource@ of @dstImage@+--+-- -   #VUID-vkCmdCopyImage-dstImage-00152# If @dstImage@ is of type+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element+--     of @pRegions@, @dstOffset.y@ /must/ be @0@ and @extent.height@+--     /must/ be @1@+--+-- -   #VUID-vkCmdCopyImage-dstOffset-00153# If @dstImage@ is of type+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each element+--     of @pRegions@, @dstOffset.z@ and (@extent.depth@ + @dstOffset.z@)+--     /must/ both be greater than or equal to @0@ and less than or equal+--     to the depth of the specified @dstSubresource@ of @dstImage@+--+-- -   #VUID-vkCmdCopyImage-pRegions-07278# For each element of @pRegions@,+--     @srcOffset.x@ /must/ be a multiple of the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent width>+--     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@+--+-- -   #VUID-vkCmdCopyImage-pRegions-07279# For each element of @pRegions@,+--     @srcOffset.y@ /must/ be a multiple of the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent height>+--     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@+--+-- -   #VUID-vkCmdCopyImage-pRegions-07280# For each element of @pRegions@,+--     @srcOffset.z@ /must/ be a multiple of the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent depth>+--     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@+--+-- -   #VUID-vkCmdCopyImage-pRegions-07281# For each element of @pRegions@,+--     @dstOffset.x@ /must/ be a multiple of the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent width>+--     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@+--+-- -   #VUID-vkCmdCopyImage-pRegions-07282# For each element of @pRegions@,+--     @dstOffset.y@ /must/ be a multiple of the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent height>+--     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@+--+-- -   #VUID-vkCmdCopyImage-pRegions-07283# For each element of @pRegions@,+--     @dstOffset.z@ /must/ be a multiple of the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent depth>+--     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@+--+-- -   #VUID-vkCmdCopyImage-srcImage-01728# For each element of @pRegions@,+--     if the sum of @srcOffset.x@ and @extent.width@ does not equal the+--     width of the subresource specified by @srcSubresource@,+--     @extent.width@ /must/ be a multiple of the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent width>+--     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@+--+-- -   #VUID-vkCmdCopyImage-srcImage-01729# For each element of @pRegions@,+--     if the sum of @srcOffset.y@ and @extent.height@ does not equal the+--     height of the subresource specified by @srcSubresource@,+--     @extent.height@ /must/ be a multiple of the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent height>+--     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@+--+-- -   #VUID-vkCmdCopyImage-srcImage-01730# For each element of @pRegions@,+--     if the sum of @srcOffset.z@ and @extent.depth@ does not equal the+--     depth of the subresource specified by @srcSubresource@,+--     @extent.depth@ /must/ be a multiple of the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent depth>+--     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@+--+-- -   #VUID-vkCmdCopyImage-dstImage-01732# For each element of @pRegions@,+--     if the sum of @dstOffset.x@ and @extent.width@ does not equal the+--     width of the subresource specified by @dstSubresource@,+--     @extent.width@ /must/ be a multiple of the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent width>+--     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@+--+-- -   #VUID-vkCmdCopyImage-dstImage-01733# For each element of @pRegions@,+--     if the sum of @dstOffset.y@ and @extent.height@ does not equal the+--     height of the subresource specified by @dstSubresource@,+--     @extent.height@ /must/ be a multiple of the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent height>+--     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@+--+-- -   #VUID-vkCmdCopyImage-dstImage-01734# For each element of @pRegions@,+--     if the sum of @dstOffset.z@ and @extent.depth@ does not equal the+--     depth of the subresource specified by @dstSubresource@,+--     @extent.depth@ /must/ be a multiple of the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent depth>+--     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@+--+-- -   #VUID-vkCmdCopyImage-aspect-06662# If the @aspect@ member of any+--     element of @pRegions@ includes any flag other than+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'+--     or @srcImage@ was not created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageStencilUsageCreateInfo separate stencil usage>,+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_SRC_BIT'+--     /must/ have been included in the+--     'Vulkan.Core10.Image.ImageCreateInfo'::@usage@ used to create+--     @srcImage@+--+-- -   #VUID-vkCmdCopyImage-aspect-06663# If the @aspect@ member of any+--     element of @pRegions@ includes any flag other than+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'+--     or @dstImage@ was not created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageStencilUsageCreateInfo separate stencil usage>,+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'+--     /must/ have been included in the+--     'Vulkan.Core10.Image.ImageCreateInfo'::@usage@ used to create+--     @dstImage@+--+-- -   #VUID-vkCmdCopyImage-aspect-06664# If the @aspect@ member of any+--     element of @pRegions@ includes+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT',+--     and @srcImage@ was created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageStencilUsageCreateInfo separate stencil usage>,+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_SRC_BIT'+--     /must/ have been included in the+--     'Vulkan.Core12.Promoted_From_VK_EXT_separate_stencil_usage.ImageStencilUsageCreateInfo'::@stencilUsage@+--     used to create @srcImage@+--+-- -   #VUID-vkCmdCopyImage-aspect-06665# If the @aspect@ member of any+--     element of @pRegions@ includes+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT',+--     and @dstImage@ was created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageStencilUsageCreateInfo separate stencil usage>,+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'+--     /must/ have been included in the+--     'Vulkan.Core12.Promoted_From_VK_EXT_separate_stencil_usage.ImageStencilUsageCreateInfo'::@stencilUsage@+--     used to create @dstImage@+--+-- -   #VUID-vkCmdCopyImage-srcImage-07966# If @srcImage@ is non-sparse+--     then the image or the specified /disjoint/ plane /must/ be bound+--     completely and contiguously to a single+--     'Vulkan.Core10.Handles.DeviceMemory' object+--+-- -   #VUID-vkCmdCopyImage-srcSubresource-07967# The+--     @srcSubresource.mipLevel@ member of each element of @pRegions@+--     /must/ be less than the @mipLevels@ specified in+--     'Vulkan.Core10.Image.ImageCreateInfo' when @srcImage@ was created+--+-- -   #VUID-vkCmdCopyImage-srcSubresource-07968# 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-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-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+--     and the source stage masks of any memory barriers include+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-framebuffer-regions framebuffer-space stages>,+--     then @dependencyFlags@ /must/ include+--     'Vulkan.Core10.Enums.DependencyFlagBits.DEPENDENCY_BY_REGION_BIT'+--+-- -   #VUID-vkCmdPipelineBarrier-None-07892# If 'cmdPipelineBarrier' is+--     called within a render pass instance, the source and destination+--     stage masks of any memory barriers /must/ only include graphics+--     pipeline stages+--+-- -   #VUID-vkCmdPipelineBarrier-dependencyFlags-01186# If+--     'cmdPipelineBarrier' is called outside of a render pass instance,+--     the dependency flags /must/ not include+--     'Vulkan.Core10.Enums.DependencyFlagBits.DEPENDENCY_VIEW_LOCAL_BIT'+--+-- -   #VUID-vkCmdPipelineBarrier-None-07893# If 'cmdPipelineBarrier' is+--     called inside a render pass instance, and there is more than one+--     view in the current subpass, dependency flags /must/ include+--     'Vulkan.Core10.Enums.DependencyFlagBits.DEPENDENCY_VIEW_LOCAL_BIT'+--+-- -   #VUID-vkCmdPipelineBarrier-shaderTileImageColorReadAccess-08718# If+--     'cmdPipelineBarrier' is called within a render pass instance and+--     none of the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderTileImageColorReadAccess shaderTileImageColorReadAccess>,+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderTileImageDepthReadAccess shaderTileImageDepthReadAccess>,+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderTileImageStencilReadAccess shaderTileImageStencilReadAccess>+--     features are enabled, the render pass /must/ not have been started+--     with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--+-- -   #VUID-vkCmdPipelineBarrier-None-08719# If 'cmdPipelineBarrier' is+--     called within a render pass instance started with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     it /must/ adhere to the restrictions in+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-barriers-explicit-renderpass-tileimage Explicit Render Pass Tile Image Access Synchronization>+--+-- -   #VUID-vkCmdPipelineBarrier-srcStageMask-06461# Any pipeline stage+--     included in @srcStageMask@ /must/ be supported by the capabilities+--     of the queue family specified by the @queueFamilyIndex@ member of+--     the 'Vulkan.Core10.CommandPool.CommandPoolCreateInfo' structure that+--     was used to create the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from, as specified in the+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-supported table of supported pipeline stages>+--+-- -   #VUID-vkCmdPipelineBarrier-dstStageMask-06462# Any pipeline stage+--     included in @dstStageMask@ /must/ be supported by the capabilities+--     of the queue family specified by the @queueFamilyIndex@ member of+--     the 'Vulkan.Core10.CommandPool.CommandPoolCreateInfo' structure that+--     was used to create the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from, as specified in the+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-supported table of supported pipeline stages>+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdPipelineBarrier-commandBuffer-parameter# @commandBuffer@+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdPipelineBarrier-srcStageMask-parameter# @srcStageMask@+--     /must/ be a valid combination of+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'+--     values+--+-- -   #VUID-vkCmdPipelineBarrier-dstStageMask-parameter# @dstStageMask@+--     /must/ be a valid combination of+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'+--     values+--+-- -   #VUID-vkCmdPipelineBarrier-dependencyFlags-parameter#+--     @dependencyFlags@ /must/ be a valid combination of+--     'Vulkan.Core10.Enums.DependencyFlagBits.DependencyFlagBits' values+--+-- -   #VUID-vkCmdPipelineBarrier-pMemoryBarriers-parameter# If+--     @memoryBarrierCount@ is not @0@, @pMemoryBarriers@ /must/ be a valid+--     pointer to an array of @memoryBarrierCount@ valid+--     'Vulkan.Core10.OtherTypes.MemoryBarrier' structures+--+-- -   #VUID-vkCmdPipelineBarrier-pBufferMemoryBarriers-parameter# If+--     @bufferMemoryBarrierCount@ is not @0@, @pBufferMemoryBarriers@+--     /must/ be a valid pointer to an array of @bufferMemoryBarrierCount@+--     valid 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier' structures+--+-- -   #VUID-vkCmdPipelineBarrier-pImageMemoryBarriers-parameter# If+--     @imageMemoryBarrierCount@ is not @0@, @pImageMemoryBarriers@ /must/+--     be a valid pointer to an array of @imageMemoryBarrierCount@ valid+--     'Vulkan.Core10.OtherTypes.ImageMemoryBarrier' structures+--+-- -   #VUID-vkCmdPipelineBarrier-commandBuffer-recording# @commandBuffer@+--     /must/ be in the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- -   #VUID-vkCmdPipelineBarrier-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support transfer, graphics, compute, decode,+--     or encode operations+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Both                                                                                                                        | Transfer                                                                                                              | Synchronization                                                                                                                        |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Graphics                                                                                                              |                                                                                                                                        |+-- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Compute                                                                                                               |                                                                                                                                        |+-- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Decode                                                                                                                |                                                                                                                                        |+-- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Encode                                                                                                                |                                                                                                                                        |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier',+-- 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.Enums.DependencyFlagBits.DependencyFlags',+-- 'Vulkan.Core10.OtherTypes.ImageMemoryBarrier',+-- 'Vulkan.Core10.OtherTypes.MemoryBarrier',+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlags'+cmdPipelineBarrier :: forall io+                    . (MonadIO io)+                   => -- | @commandBuffer@ is the command buffer into which the command is+                      -- recorded.+                      CommandBuffer+                   -> -- | @srcStageMask@ is a bitmask of+                      -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'+                      -- specifying the+                      -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masks source stages>.+                      ("srcStageMask" ::: PipelineStageFlags)+                   -> -- | @dstStageMask@ is a bitmask of+                      -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'+                      -- specifying the+                      -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masks destination stages>.+                      ("dstStageMask" ::: PipelineStageFlags)+                   -> -- | @dependencyFlags@ is a bitmask of+                      -- 'Vulkan.Core10.Enums.DependencyFlagBits.DependencyFlagBits' specifying+                      -- how execution and memory dependencies are formed.+                      DependencyFlags+                   -> -- | @pMemoryBarriers@ is a pointer to an array of+                      -- 'Vulkan.Core10.OtherTypes.MemoryBarrier' structures.+                      ("memoryBarriers" ::: Vector MemoryBarrier)+                   -> -- | @pBufferMemoryBarriers@ is a pointer to an array of+                      -- 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier' structures.+                      ("bufferMemoryBarriers" ::: Vector (SomeStruct BufferMemoryBarrier))+                   -> -- | @pImageMemoryBarriers@ is a pointer to an array of+                      -- 'Vulkan.Core10.OtherTypes.ImageMemoryBarrier' structures.+                      ("imageMemoryBarriers" ::: Vector (SomeStruct ImageMemoryBarrier))+                   -> io ()+cmdPipelineBarrier commandBuffer+                     srcStageMask+                     dstStageMask+                     dependencyFlags+                     memoryBarriers+                     bufferMemoryBarriers+                     imageMemoryBarriers = liftIO . evalContT $ do+  let vkCmdPipelineBarrierPtr = pVkCmdPipelineBarrier (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  lift $ unless (vkCmdPipelineBarrierPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdPipelineBarrier is null" Nothing Nothing+  let vkCmdPipelineBarrier' = mkVkCmdPipelineBarrier vkCmdPipelineBarrierPtr+  pPMemoryBarriers <- ContT $ allocaBytes @MemoryBarrier ((Data.Vector.length (memoryBarriers)) * 24)+  lift $ Data.Vector.imapM_ (\i e -> poke (pPMemoryBarriers `plusPtr` (24 * (i)) :: Ptr MemoryBarrier) (e)) (memoryBarriers)+  pPBufferMemoryBarriers <- ContT $ allocaBytes @(BufferMemoryBarrier _) ((Data.Vector.length (bufferMemoryBarriers)) * 56)+  Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPBufferMemoryBarriers `plusPtr` (56 * (i)) :: Ptr (BufferMemoryBarrier _))) (e) . ($ ())) (bufferMemoryBarriers)+  pPImageMemoryBarriers <- ContT $ allocaBytes @(ImageMemoryBarrier _) ((Data.Vector.length (imageMemoryBarriers)) * 72)+  Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPImageMemoryBarriers `plusPtr` (72 * (i)) :: Ptr (ImageMemoryBarrier _))) (e) . ($ ())) (imageMemoryBarriers)+  lift $ traceAroundEvent "vkCmdPipelineBarrier" (vkCmdPipelineBarrier'+                                                    (commandBufferHandle (commandBuffer))+                                                    (srcStageMask)+                                                    (dstStageMask)+                                                    (dependencyFlags)+                                                    ((fromIntegral (Data.Vector.length $ (memoryBarriers)) :: Word32))+                                                    (pPMemoryBarriers)+                                                    ((fromIntegral (Data.Vector.length $ (bufferMemoryBarriers)) :: Word32))+                                                    (forgetExtensions (pPBufferMemoryBarriers))+                                                    ((fromIntegral (Data.Vector.length $ (imageMemoryBarriers)) :: Word32))+                                                    (forgetExtensions (pPImageMemoryBarriers)))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdBeginQuery+  :: FunPtr (Ptr CommandBuffer_T -> QueryPool -> Word32 -> QueryControlFlags -> IO ()) -> Ptr CommandBuffer_T -> QueryPool -> Word32 -> QueryControlFlags -> IO ()++-- | vkCmdBeginQuery - Begin a query+--+-- = Description+--+-- If the @queryType@ of the pool is+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_OCCLUSION' and @flags@+-- contains+-- 'Vulkan.Core10.Enums.QueryControlFlagBits.QUERY_CONTROL_PRECISE_BIT', an+-- implementation /must/ return a result that matches the actual number of+-- samples passed. This is described in more detail in+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-occlusion Occlusion Queries>.+--+-- Calling 'cmdBeginQuery' is equivalent to calling+-- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdBeginQueryIndexedEXT'+-- with the @index@ parameter set to zero.+--+-- After beginning a query, that query is considered /active/ within the+-- command buffer it was called in until that same query is ended. Queries+-- active in a primary command buffer when secondary command buffers are+-- executed are considered active for those secondary command buffers.+--+-- Furthermore, if the query is started within a video coding scope, the+-- following command buffer states are initialized for the query type:+--+-- -   #queries-operation-active-query-index# The /active_query_index/ is+--     set to the value specified by @query@.+--+-- -   #queries-operation-last-activatable-query-index# The /last+--     activatable query index/ is also set to the value specified by+--     @query@.+--+-- Each+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#video-coding video coding operation>+-- stores a result to the query corresponding to the current active query+-- index, followed by incrementing the active query index. If the active+-- query index gets incremented past the last activatable query index,+-- issuing any further video coding operations results in undefined+-- behavior.+--+-- Note+--+-- In practice, this means that currently no more than a single video+-- coding operation /must/ be issued between a begin and end query pair.+--+-- This command defines an execution dependency between other query+-- commands that reference the same query.+--+-- The first+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>+-- includes all commands which reference the queries in @queryPool@+-- indicated by @query@ that occur earlier in+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.+--+-- The second+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>+-- includes all commands which reference the queries in @queryPool@+-- indicated by @query@ that occur later in+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.+--+-- The operation of this command happens after the first scope and happens+-- before the second scope.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdBeginQuery-None-00807# All queries used by the command+--     /must/ be /unavailable/+--+-- -   #VUID-vkCmdBeginQuery-queryType-02804# The @queryType@ used to+--     create @queryPool@ /must/ not be+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_TIMESTAMP'+--+-- -   #VUID-vkCmdBeginQuery-queryType-04728# The @queryType@ used to+--     create @queryPool@ /must/ not be+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR'+--     or+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR'+--+-- -   #VUID-vkCmdBeginQuery-queryType-06741# The @queryType@ used to+--     create @queryPool@ /must/ not be+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR'+--     or+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR'+--+-- -   #VUID-vkCmdBeginQuery-queryType-04729# The @queryType@ used to+--     create @queryPool@ /must/ not be+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV'+--+-- -   #VUID-vkCmdBeginQuery-queryType-00800# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-occlusionQueryPrecise occlusionQueryPrecise>+--     feature is not enabled, or the @queryType@ used to create+--     @queryPool@ was not+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_OCCLUSION', @flags@ /must/+--     not contain+--     'Vulkan.Core10.Enums.QueryControlFlagBits.QUERY_CONTROL_PRECISE_BIT'+--+-- -   #VUID-vkCmdBeginQuery-query-00802# @query@ /must/ be less than the+--     number of queries in @queryPool@+--+-- -   #VUID-vkCmdBeginQuery-queryType-00803# If the @queryType@ used to+--     create @queryPool@ was+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_OCCLUSION', the+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- -   #VUID-vkCmdBeginQuery-queryType-00804# If the @queryType@ used to+--     create @queryPool@ was+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PIPELINE_STATISTICS' and+--     any of the @pipelineStatistics@ indicate graphics operations, the+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- -   #VUID-vkCmdBeginQuery-queryType-00805# If the @queryType@ used to+--     create @queryPool@ was+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PIPELINE_STATISTICS' and+--     any of the @pipelineStatistics@ indicate compute operations, the+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support compute operations+--+-- -   #VUID-vkCmdBeginQuery-commandBuffer-01885# @commandBuffer@ /must/+--     not be a protected command buffer+--+-- -   #VUID-vkCmdBeginQuery-query-00808# If called within a render pass+--     instance, the sum of @query@ and the number of bits set in the+--     current subpass’s view mask /must/ be less than or equal to the+--     number of queries in @queryPool@+--+-- -   #VUID-vkCmdBeginQuery-queryType-07126# If the @queryType@ used to+--     create @queryPool@ was @VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR@, then+--     the 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ have been created with a queue family index+--     that supports+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-result-status-only result status queries>,+--     as indicated by+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFamilyQueryResultStatusPropertiesKHR VkQueueFamilyQueryResultStatusPropertiesKHR>::@queryResultStatusSupport@+--+-- -   #VUID-vkCmdBeginQuery-None-07127# If there is a bound video session,+--     then there /must/ be no+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-operation-active active>+--     queries+--+-- -   #VUID-vkCmdBeginQuery-queryType-07128# If the @queryType@ used to+--     create @queryPool@ was @VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR@ and+--     there is a bound video session, then @queryPool@ /must/ have been+--     created with a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileInfoKHR VkVideoProfileInfoKHR>+--     structure included in the @pNext@ chain of+--     'Vulkan.Core10.Query.QueryPoolCreateInfo' identical to the one+--     specified in+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoSessionCreateInfoKHR VkVideoSessionCreateInfoKHR>::@pVideoProfile@+--     the bound video session was created with+--+-- -   #VUID-vkCmdBeginQuery-queryType-04862# If the @queryType@ used to+--     create @queryPool@ was @VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR@,+--     then the 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@+--     was allocated from /must/ support+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#video-encode-operations video encode operations>+--+-- -   #VUID-vkCmdBeginQuery-queryType-07129# If the @queryType@ used to+--     create @queryPool@ was @VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR@,+--     then there /must/ be a bound video session+--+-- -   #VUID-vkCmdBeginQuery-queryType-07130# If the @queryType@ used to+--     create @queryPool@ was @VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR@ and+--     there is a bound video session, then @queryPool@ /must/ have been+--     created with a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileInfoKHR VkVideoProfileInfoKHR>+--     structure included in the @pNext@ chain of+--     'Vulkan.Core10.Query.QueryPoolCreateInfo' identical to the one+--     specified in+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoSessionCreateInfoKHR VkVideoSessionCreateInfoKHR>::@pVideoProfile@+--     the bound video session was created with+--+-- -   #VUID-vkCmdBeginQuery-queryType-07131# If the @queryType@ used to+--     create @queryPool@ was not @VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR@ or+--     @VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR@, then there /must/ be no+--     bound video session+--+-- -   #VUID-vkCmdBeginQuery-queryPool-01922# @queryPool@ /must/ have been+--     created with a @queryType@ that differs from that of any queries+--     that are+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-active active>+--     within @commandBuffer@+--+-- -   #VUID-vkCmdBeginQuery-queryType-07070# If the @queryType@ used to+--     create @queryPool@ was+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT'+--     the 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- -   #VUID-vkCmdBeginQuery-queryType-02327# If the @queryType@ used to+--     create @queryPool@ was+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT'+--     the 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- -   #VUID-vkCmdBeginQuery-queryType-02328# If the @queryType@ used to+--     create @queryPool@ was+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT'+--     then+--     'Vulkan.Extensions.VK_EXT_transform_feedback.PhysicalDeviceTransformFeedbackPropertiesEXT'::@transformFeedbackQueries@+--     /must/ be supported+--+-- -   #VUID-vkCmdBeginQuery-queryType-06687# If the @queryType@ used to+--     create @queryPool@ was+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'+--     the 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- -   #VUID-vkCmdBeginQuery-queryType-06688# If the @queryType@ used to+--     create @queryPool@ was+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'+--     then+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitivesGeneratedQuery primitivesGeneratedQuery>+--     /must/ be enabled+--+-- -   #VUID-vkCmdBeginQuery-queryPool-07289# If @queryPool@ was created+--     with a @queryType@ of+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR',+--     then the+--     'Vulkan.Extensions.VK_KHR_performance_query.QueryPoolPerformanceCreateInfoKHR'::@queueFamilyIndex@+--     @queryPool@ was created with /must/ equal the queue family index of+--     the 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from+--+-- -   #VUID-vkCmdBeginQuery-queryPool-03223# If @queryPool@ was created+--     with a @queryType@ of+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR',+--     the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#profiling-lock profiling lock>+--     /must/ have been held before+--     'Vulkan.Core10.CommandBuffer.beginCommandBuffer' was called on+--     @commandBuffer@+--+-- -   #VUID-vkCmdBeginQuery-queryPool-03224# If @queryPool@ was created+--     with a @queryType@ of+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR' and+--     one of the counters used to create @queryPool@ was+--     'Vulkan.Extensions.VK_KHR_performance_query.PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR',+--     the query begin /must/ be the first recorded command in+--     @commandBuffer@+--+-- -   #VUID-vkCmdBeginQuery-queryPool-03225# If @queryPool@ was created+--     with a @queryType@ of+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR' and+--     one of the counters used to create @queryPool@ was+--     'Vulkan.Extensions.VK_KHR_performance_query.PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR',+--     the begin command /must/ not be recorded within a render pass+--     instance+--+-- -   #VUID-vkCmdBeginQuery-queryPool-03226# If @queryPool@ was created+--     with a @queryType@ of+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR' and+--     another query pool with a @queryType@+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR' has+--     been used within @commandBuffer@, its parent primary command buffer+--     or secondary command buffer recorded within the same parent primary+--     command buffer as @commandBuffer@, the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-performanceCounterMultipleQueryPools performanceCounterMultipleQueryPools>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdBeginQuery-None-02863# If @queryPool@ was created with a+--     @queryType@ of+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR',+--     this command /must/ not be recorded in a command buffer that, either+--     directly or through secondary command buffers, also contains a+--     'cmdResetQueryPool' command affecting the same query+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdBeginQuery-commandBuffer-parameter# @commandBuffer@+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdBeginQuery-queryPool-parameter# @queryPool@ /must/ be a+--     valid 'Vulkan.Core10.Handles.QueryPool' handle+--+-- -   #VUID-vkCmdBeginQuery-flags-parameter# @flags@ /must/ be a valid+--     combination of+--     'Vulkan.Core10.Enums.QueryControlFlagBits.QueryControlFlagBits'+--     values+--+-- -   #VUID-vkCmdBeginQuery-commandBuffer-recording# @commandBuffer@+--     /must/ be in the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- -   #VUID-vkCmdBeginQuery-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics, compute, decode, or encode+--     operations+--+-- -   #VUID-vkCmdBeginQuery-commonparent# Both of @commandBuffer@, and+--     @queryPool@ /must/ have been created, allocated, or retrieved from+--     the same 'Vulkan.Core10.Handles.Device'+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Both                                                                                                                        | Graphics                                                                                                              | Action                                                                                                                                 |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Compute                                                                                                               | State                                                                                                                                  |+-- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Decode                                                                                                                |                                                                                                                                        |+-- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Encode                                                                                                                |                                                                                                                                        |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.Enums.QueryControlFlagBits.QueryControlFlags',+-- 'Vulkan.Core10.Handles.QueryPool',+-- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdBeginQueryIndexedEXT',+-- 'cmdEndQuery',+-- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdEndQueryIndexedEXT'+cmdBeginQuery :: forall io+               . (MonadIO io)+              => -- | @commandBuffer@ is the command buffer into which this command will be+                 -- recorded.+                 CommandBuffer+              -> -- | @queryPool@ is the query pool that will manage the results of the query.+                 QueryPool+              -> -- | @query@ is the query index within the query pool that will contain the+                 -- results.+                 ("query" ::: Word32)+              -> -- | @flags@ is a bitmask of+                 -- 'Vulkan.Core10.Enums.QueryControlFlagBits.QueryControlFlagBits'+                 -- specifying constraints on the types of queries that /can/ be performed.+                 QueryControlFlags+              -> io ()+cmdBeginQuery commandBuffer queryPool query flags = liftIO $ do+  let vkCmdBeginQueryPtr = pVkCmdBeginQuery (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdBeginQueryPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBeginQuery is null" Nothing Nothing+  let vkCmdBeginQuery' = mkVkCmdBeginQuery vkCmdBeginQueryPtr+  traceAroundEvent "vkCmdBeginQuery" (vkCmdBeginQuery'+                                        (commandBufferHandle (commandBuffer))+                                        (queryPool)+                                        (query)+                                        (flags))+  pure $ ()++-- | This function will call the supplied action between calls to+-- 'cmdBeginQuery' and 'cmdEndQuery'+--+-- Note that 'cmdEndQuery' is *not* called if an exception is thrown by the+-- inner action.+cmdUseQuery :: forall io r . MonadIO io => CommandBuffer -> QueryPool -> Word32 -> QueryControlFlags -> io r -> io r+cmdUseQuery commandBuffer queryPool query flags a =+  (cmdBeginQuery commandBuffer+                   queryPool+                   query+                   flags) *> a <* (cmdEndQuery commandBuffer queryPool query)+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdEndQuery+  :: FunPtr (Ptr CommandBuffer_T -> QueryPool -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> QueryPool -> Word32 -> IO ()++-- | vkCmdEndQuery - Ends a query+--+-- = Description+--+-- The command completes the query in @queryPool@ identified by @query@,+-- and marks it as available.+--+-- This command defines an execution dependency between other query+-- commands that reference the same query.+--+-- The first+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>+-- includes all commands which reference the queries in @queryPool@+-- indicated by @query@ that occur earlier in+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.+--+-- The second+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>+-- includes only the operation of this command.+--+-- Calling 'cmdEndQuery' is equivalent to calling+-- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdEndQueryIndexedEXT' with+-- the @index@ parameter set to zero.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdEndQuery-None-01923# All queries used by the command+--     /must/ be+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-active active>+--+-- -   #VUID-vkCmdEndQuery-query-00810# @query@ /must/ be less than the+--     number of queries in @queryPool@+--+-- -   #VUID-vkCmdEndQuery-commandBuffer-01886# @commandBuffer@ /must/ not+--     be a protected command buffer+--+-- -   #VUID-vkCmdEndQuery-query-00812# If 'cmdEndQuery' is called within a+--     render pass instance, the sum of @query@ and the number of bits set+--     in the current subpass’s view mask /must/ be less than or equal to+--     the number of queries in @queryPool@+--+-- -   #VUID-vkCmdEndQuery-queryPool-03227# If @queryPool@ was created with+--     a @queryType@ of+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR' and+--     one or more of the counters used to create @queryPool@ was+--     'Vulkan.Extensions.VK_KHR_performance_query.PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR',+--     the 'cmdEndQuery' /must/ be the last recorded command in+--     @commandBuffer@+--+-- -   #VUID-vkCmdEndQuery-queryPool-03228# If @queryPool@ was created with+--     a @queryType@ of+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR' and+--     one or more of the counters used to create @queryPool@ was+--     'Vulkan.Extensions.VK_KHR_performance_query.PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR',+--     the 'cmdEndQuery' /must/ not be recorded within a render pass+--     instance+--+-- -   #VUID-vkCmdEndQuery-None-07007# If called within a subpass of a+--     render pass instance, the corresponding 'cmdBeginQuery'* command+--     /must/ have been called previously within the same subpass+--+-- -   #VUID-vkCmdEndQuery-None-07008# If called outside of a render pass+--     instance, the corresponding 'cmdBeginQuery'* command /must/ have+--     been called outside of a render pass instance+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdEndQuery-commandBuffer-parameter# @commandBuffer@ /must/+--     be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdEndQuery-queryPool-parameter# @queryPool@ /must/ be a+--     valid 'Vulkan.Core10.Handles.QueryPool' handle+--+-- -   #VUID-vkCmdEndQuery-commandBuffer-recording# @commandBuffer@ /must/+--     be in the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- -   #VUID-vkCmdEndQuery-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics, compute, decode, or encode+--     operations+--+-- -   #VUID-vkCmdEndQuery-commonparent# Both of @commandBuffer@, and+--     @queryPool@ /must/ have been created, allocated, or retrieved from+--     the same 'Vulkan.Core10.Handles.Device'+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Both                                                                                                                        | Graphics                                                                                                              | Action                                                                                                                                 |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Compute                                                                                                               | State                                                                                                                                  |+-- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Decode                                                                                                                |                                                                                                                                        |+-- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Encode                                                                                                                |                                                                                                                                        |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.Handles.QueryPool', 'cmdBeginQuery',+-- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdBeginQueryIndexedEXT',+-- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdEndQueryIndexedEXT'+cmdEndQuery :: forall io+             . (MonadIO io)+            => -- | @commandBuffer@ is the command buffer into which this command will be+               -- recorded.+               CommandBuffer+            -> -- | @queryPool@ is the query pool that is managing the results of the query.+               QueryPool+            -> -- | @query@ is the query index within the query pool where the result is+               -- stored.+               ("query" ::: Word32)+            -> io ()+cmdEndQuery commandBuffer queryPool query = liftIO $ do+  let vkCmdEndQueryPtr = pVkCmdEndQuery (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdEndQueryPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdEndQuery is null" Nothing Nothing+  let vkCmdEndQuery' = mkVkCmdEndQuery vkCmdEndQueryPtr+  traceAroundEvent "vkCmdEndQuery" (vkCmdEndQuery'+                                      (commandBufferHandle (commandBuffer))+                                      (queryPool)+                                      (query))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdResetQueryPool+  :: FunPtr (Ptr CommandBuffer_T -> QueryPool -> Word32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> QueryPool -> Word32 -> Word32 -> IO ()++-- | vkCmdResetQueryPool - Reset queries in a query pool+--+-- = Description+--+-- When executed on a queue, this command sets the status of query indices+-- [@firstQuery@, @firstQuery@ + @queryCount@ - 1] to unavailable.+--+-- This command defines an execution dependency between other query+-- commands that reference the same query.+--+-- The first+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>+-- includes all commands which reference the queries in @queryPool@+-- indicated by @firstQuery@ and @queryCount@ that occur earlier in+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.+--+-- The second+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>+-- includes all commands which reference the queries in @queryPool@+-- indicated by @firstQuery@ and @queryCount@ that occur later in+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.+--+-- The operation of this command happens after the first scope and happens+-- before the second scope.+--+-- If the @queryType@ used to create @queryPool@ was+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR', this+-- command sets the status of query indices [@firstQuery@, @firstQuery@ ++-- @queryCount@ - 1] to unavailable for each pass of @queryPool@, as+-- indicated by a call to+-- 'Vulkan.Extensions.VK_KHR_performance_query.getPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR'.+--+-- Note+--+-- Because 'cmdResetQueryPool' resets all the passes of the indicated+-- queries, applications must not record a 'cmdResetQueryPool' command for+-- a @queryPool@ created with+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR' in a+-- command buffer that needs to be submitted multiple times as indicated by+-- a call to+-- 'Vulkan.Extensions.VK_KHR_performance_query.getPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR'.+-- Otherwise applications will never be able to complete the recorded+-- queries.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdResetQueryPool-firstQuery-00796# @firstQuery@ /must/ be+--     less than the number of queries in @queryPool@+--+-- -   #VUID-vkCmdResetQueryPool-firstQuery-00797# The sum of @firstQuery@+--     and @queryCount@ /must/ be less than or equal to the number of+--     queries in @queryPool@+--+-- -   #VUID-vkCmdResetQueryPool-None-02841# All queries used by the+--     command /must/ not be active+--+-- -   #VUID-vkCmdResetQueryPool-firstQuery-02862# If @queryPool@ was+--     created with+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR',+--     this command /must/ not be recorded in a command buffer that, either+--     directly or through secondary command buffers, also contains begin+--     commands for a query from the set of queries [@firstQuery@,+--     @firstQuery@ + @queryCount@ - 1]+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdResetQueryPool-commandBuffer-parameter# @commandBuffer@+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdResetQueryPool-queryPool-parameter# @queryPool@ /must/ be+--     a valid 'Vulkan.Core10.Handles.QueryPool' handle+--+-- -   #VUID-vkCmdResetQueryPool-commandBuffer-recording# @commandBuffer@+--     /must/ be in the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- -   #VUID-vkCmdResetQueryPool-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics, compute, decode, encode, or+--     optical flow operations+--+-- -   #VUID-vkCmdResetQueryPool-renderpass# This command /must/ only be+--     called outside of a render pass instance+--+-- -   #VUID-vkCmdResetQueryPool-videocoding# This command /must/ only be+--     called outside of a video coding scope+--+-- -   #VUID-vkCmdResetQueryPool-commonparent# Both of @commandBuffer@, and+--     @queryPool@ /must/ have been created, allocated, or retrieved from+--     the same 'Vulkan.Core10.Handles.Device'+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Compute                                                                                                               |                                                                                                                                        |+-- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Decode                                                                                                                |                                                                                                                                        |+-- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Encode                                                                                                                |                                                                                                                                        |+-- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Opticalflow                                                                                                           |                                                                                                                                        |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.CommandBuffer', 'Vulkan.Core10.Handles.QueryPool'+cmdResetQueryPool :: forall io+                   . (MonadIO io)+                  => -- | @commandBuffer@ is the command buffer into which this command will be+                     -- recorded.+                     CommandBuffer+                  -> -- | @queryPool@ is the handle of the query pool managing the queries being+                     -- reset.+                     QueryPool+                  -> -- | @firstQuery@ is the initial query index to reset.+                     ("firstQuery" ::: Word32)+                  -> -- | @queryCount@ is the number of queries to reset.+                     ("queryCount" ::: Word32)+                  -> io ()+cmdResetQueryPool commandBuffer queryPool firstQuery queryCount = liftIO $ do+  let vkCmdResetQueryPoolPtr = pVkCmdResetQueryPool (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdResetQueryPoolPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdResetQueryPool is null" Nothing Nothing+  let vkCmdResetQueryPool' = mkVkCmdResetQueryPool vkCmdResetQueryPoolPtr+  traceAroundEvent "vkCmdResetQueryPool" (vkCmdResetQueryPool'+                                            (commandBufferHandle (commandBuffer))+                                            (queryPool)+                                            (firstQuery)+                                            (queryCount))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdWriteTimestamp+  :: FunPtr (Ptr CommandBuffer_T -> PipelineStageFlagBits -> QueryPool -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> PipelineStageFlagBits -> QueryPool -> Word32 -> IO ()++-- | vkCmdWriteTimestamp - Write a device timestamp into a query object+--+-- = Description+--+-- When 'cmdWriteTimestamp' is submitted to a queue, it defines an+-- execution dependency on commands that were submitted before it, and+-- writes a timestamp to a query pool.+--+-- The first+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>+-- includes all commands that occur earlier in+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.+-- The synchronization scope is limited to operations on the pipeline stage+-- specified by @pipelineStage@.+--+-- The second+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>+-- includes only the timestamp write operation.+--+-- Note+--+-- Implementations may write the timestamp at any stage that is+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-order logically later>+-- than @stage@.+--+-- Any timestamp write that+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-execution happens-after>+-- another timestamp write in the same submission /must/ not have a lower+-- value unless its value overflows the maximum supported integer bit width+-- of the query. If @VK_EXT_calibrated_timestamps@ is enabled, this extends+-- to timestamp writes across all submissions on the same logical device:+-- any timestamp write that+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-execution happens-after>+-- another /must/ not have a lower value unless its value overflows the+-- maximum supported integer bit width of the query. Timestamps written by+-- this command /must/ be in the+-- 'Vulkan.Extensions.VK_EXT_calibrated_timestamps.TIME_DOMAIN_DEVICE_EXT'+-- <VkTimeDomainEXT.html time domain>. If an overflow occurs, the timestamp+-- value /must/ wrap back to zero.+--+-- Note+--+-- Comparisons between timestamps should be done between timestamps where+-- they are guaranteed to not decrease. For example, subtracting an older+-- timestamp from a newer one to determine the execution time of a sequence+-- of commands is only a reliable measurement if the two timestamp writes+-- were performed in the same submission, or if the writes were performed+-- on the same logical device and @VK_EXT_calibrated_timestamps@ is+-- enabled.+--+-- If 'cmdWriteTimestamp' is called while executing a render pass instance+-- that has multiview enabled, the timestamp uses N consecutive query+-- indices in the query pool (starting at @query@) where N is the number of+-- bits set in the view mask of the subpass the command is executed in. The+-- resulting query values are determined by an implementation-dependent+-- choice of one of the following behaviors:+--+-- -   The first query is a timestamp value and (if more than one bit is+--     set in the view mask) zero is written to the remaining queries. If+--     two timestamps are written in the same subpass, the sum of the+--     execution time of all views between those commands is the difference+--     between the first query written by each command.+--+-- -   All N queries are timestamp values. If two timestamps are written in+--     the same subpass, the sum of the execution time of all views between+--     those commands is the sum of the difference between corresponding+--     queries written by each command. The difference between+--     corresponding queries /may/ be the execution time of a single view.+--+-- In either case, the application /can/ sum the differences between all N+-- queries to determine the total execution time.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdWriteTimestamp-pipelineStage-04074# @pipelineStage@+--     /must/ be a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-supported valid stage>+--     for the queue family that was used to create the command pool that+--     @commandBuffer@ was allocated from+--+-- -   #VUID-vkCmdWriteTimestamp-pipelineStage-04075# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader>+--     feature is not enabled, @pipelineStage@ /must/ not be+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT'+--+-- -   #VUID-vkCmdWriteTimestamp-pipelineStage-04076# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellationShader>+--     feature is not enabled, @pipelineStage@ /must/ not be+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT'+--     or+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT'+--+-- -   #VUID-vkCmdWriteTimestamp-pipelineStage-04077# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-conditionalRendering conditionalRendering>+--     feature is not enabled, @pipelineStage@ /must/ not be+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT'+--+-- -   #VUID-vkCmdWriteTimestamp-pipelineStage-04078# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragmentDensityMap>+--     feature is not enabled, @pipelineStage@ /must/ not be+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT'+--+-- -   #VUID-vkCmdWriteTimestamp-pipelineStage-04079# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transformFeedback>+--     feature is not enabled, @pipelineStage@ /must/ not be+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'+--+-- -   #VUID-vkCmdWriteTimestamp-pipelineStage-04080# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-meshShader meshShader>+--     feature is not enabled, @pipelineStage@ /must/ not be+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_EXT'+--+-- -   #VUID-vkCmdWriteTimestamp-pipelineStage-07077# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>+--     feature is not enabled, @pipelineStage@ /must/ not be+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_EXT'+--+-- -   #VUID-vkCmdWriteTimestamp-shadingRateImage-07314# If neither the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>+--     or+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>+--     are enabled, @pipelineStage@ /must/ not be+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'+--+-- -   #VUID-vkCmdWriteTimestamp-synchronization2-06489# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2>+--     feature is not enabled, @pipelineStage@ /must/ not be+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_NONE'+--+-- -   #VUID-vkCmdWriteTimestamp-rayTracingPipeline-07943# If neither the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_ray_tracing VK_NV_ray_tracing>+--     extension or+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayTracingPipeline rayTracingPipeline feature>+--     are enabled, @pipelineStage@ /must/ not be+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR'+--+-- -   #VUID-vkCmdWriteTimestamp-queryPool-01416# @queryPool@ /must/ have+--     been created with a @queryType@ of+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_TIMESTAMP'+--+-- -   #VUID-vkCmdWriteTimestamp-timestampValidBits-00829# The command+--     pool’s queue family /must/ support a non-zero @timestampValidBits@+--+-- -   #VUID-vkCmdWriteTimestamp-query-04904# @query@ /must/ be less than+--     the number of queries in @queryPool@+--+-- -   #VUID-vkCmdWriteTimestamp-None-00830# All queries used by the+--     command /must/ be /unavailable/+--+-- -   #VUID-vkCmdWriteTimestamp-query-00831# If 'cmdWriteTimestamp' is+--     called within a render pass instance, the sum of @query@ and the+--     number of bits set in the current subpass’s view mask /must/ be less+--     than or equal to the number of queries in @queryPool@+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdWriteTimestamp-commandBuffer-parameter# @commandBuffer@+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdWriteTimestamp-pipelineStage-parameter# @pipelineStage@+--     /must/ be a valid+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'+--     value+--+-- -   #VUID-vkCmdWriteTimestamp-queryPool-parameter# @queryPool@ /must/ be+--     a valid 'Vulkan.Core10.Handles.QueryPool' handle+--+-- -   #VUID-vkCmdWriteTimestamp-commandBuffer-recording# @commandBuffer@+--     /must/ be in the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- -   #VUID-vkCmdWriteTimestamp-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support transfer, graphics, compute, decode,+--     encode, or optical flow operations+--+-- -   #VUID-vkCmdWriteTimestamp-commonparent# Both of @commandBuffer@, and+--     @queryPool@ /must/ have been created, allocated, or retrieved from+--     the same 'Vulkan.Core10.Handles.Device'+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Both                                                                                                                        | Transfer                                                                                                              | Action                                                                                                                                 |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Graphics                                                                                                              |                                                                                                                                        |+-- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Compute                                                                                                               |                                                                                                                                        |+-- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Decode                                                                                                                |                                                                                                                                        |+-- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Encode                                                                                                                |                                                                                                                                        |+-- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Opticalflow                                                                                                           |                                                                                                                                        |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits',+-- 'Vulkan.Core10.Handles.QueryPool'+cmdWriteTimestamp :: forall io+                   . (MonadIO io)+                  => -- | @commandBuffer@ is the command buffer into which the command will be+                     -- recorded.+                     CommandBuffer+                  -> -- | @pipelineStage@ is a+                     -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits' value,+                     -- specifying a stage of the pipeline.+                     PipelineStageFlagBits+                  -> -- | @queryPool@ is the query pool that will manage the timestamp.+                     QueryPool+                  -> -- | @query@ is the query within the query pool that will contain the+                     -- timestamp.+                     ("query" ::: Word32)+                  -> io ()+cmdWriteTimestamp commandBuffer pipelineStage queryPool query = liftIO $ do+  let vkCmdWriteTimestampPtr = pVkCmdWriteTimestamp (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdWriteTimestampPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdWriteTimestamp is null" Nothing Nothing+  let vkCmdWriteTimestamp' = mkVkCmdWriteTimestamp vkCmdWriteTimestampPtr+  traceAroundEvent "vkCmdWriteTimestamp" (vkCmdWriteTimestamp'+                                            (commandBufferHandle (commandBuffer))+                                            (pipelineStage)+                                            (queryPool)+                                            (query))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdCopyQueryPoolResults+  :: FunPtr (Ptr CommandBuffer_T -> QueryPool -> Word32 -> Word32 -> Buffer -> DeviceSize -> DeviceSize -> QueryResultFlags -> IO ()) -> Ptr CommandBuffer_T -> QueryPool -> Word32 -> Word32 -> Buffer -> DeviceSize -> DeviceSize -> QueryResultFlags -> IO ()++-- | vkCmdCopyQueryPoolResults - Copy the results of queries in a query pool+-- to a buffer object+--+-- = Description+--+-- Any results written for a query are written according to+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-memorylayout a layout dependent on the query type>.+--+-- Results for any query in @queryPool@ identified by @firstQuery@ and+-- @queryCount@ that is available are copied to @dstBuffer@.+--+-- If+-- 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_WITH_AVAILABILITY_BIT'+-- is set, results for all queries in @queryPool@ identified by+-- @firstQuery@ and @queryCount@ are copied to @dstBuffer@, along with an+-- extra availability value written directly after the results of each+-- query and interpreted as an unsigned integer. A value of zero indicates+-- that the results are not yet available, otherwise the query is complete+-- and results are available.+--+-- If @VK_QUERY_RESULT_WITH_STATUS_BIT_KHR@ is set, results for all queries+-- in @queryPool@ identified by @firstQuery@ and @queryCount@ are copied to+-- @dstBuffer@, along with an extra status value written directly after the+-- results of each query and interpreted as a signed integer. A value of+-- zero indicates that the results are not yet available. Positive values+-- indicate that the operations within the query completed successfully,+-- and the query results are valid. Negative values indicate that the+-- operations within the query completed unsuccessfully.+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueryResultStatusKHR VkQueryResultStatusKHR>+-- defines specific meaning for values returned here, though+-- implementations are free to return other values.+--+-- Results for any available query written by this command are final and+-- represent the final result of the query. If+-- 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_PARTIAL_BIT' is+-- set, then for any query that is unavailable, an intermediate result+-- between zero and the final result value is written for that query.+-- Otherwise, any result written by this command is undefined.+--+-- If 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_64_BIT' is set,+-- results and availability or status values for all queries are written as+-- an array of 64-bit values. If the @queryPool@ was created with+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR',+-- results for each query are written as an array of the type indicated by+-- 'Vulkan.Extensions.VK_KHR_performance_query.PerformanceCounterKHR'::@storage@+-- for the counter being queried. Otherwise, results and availability or+-- status values are written as an array of 32-bit values. If an unsigned+-- integer query’s value overflows the result type, the value /may/ either+-- wrap or saturate. If a signed integer query’s value overflows the result+-- type, the value is undefined. If a floating point query’s value is not+-- representable as the result type, the value is undefined.+--+-- This command defines an execution dependency between other query+-- commands that reference the same query.+--+-- The first+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>+-- includes all commands which reference the queries in @queryPool@+-- indicated by @query@ that occur earlier in+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.+-- If @flags@ does not include+-- 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_WAIT_BIT',+-- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdEndQueryIndexedEXT',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdWriteTimestamp2',+-- 'cmdEndQuery', and 'cmdWriteTimestamp' are excluded from this scope.+--+-- The second+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>+-- includes all commands which reference the queries in @queryPool@+-- indicated by @query@ that occur later in+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.+--+-- The operation of this command happens after the first scope and happens+-- before the second scope.+--+-- 'cmdCopyQueryPoolResults' is considered to be a transfer operation, and+-- its writes to buffer memory /must/ be synchronized using+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFER_BIT'+-- and 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_TRANSFER_WRITE_BIT'+-- before using the results.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdCopyQueryPoolResults-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-firstQuery-00820# @firstQuery@+--     /must/ be less than the number of queries in @queryPool@+--+-- -   #VUID-vkCmdCopyQueryPoolResults-firstQuery-00821# The sum of+--     @firstQuery@ and @queryCount@ /must/ be less than or equal to the+--     number of queries in @queryPool@+--+-- -   #VUID-vkCmdCopyQueryPoolResults-flags-00822# If+--     'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_64_BIT' is not+--     set in @flags@ then @dstOffset@ and @stride@ /must/ be multiples of+--     @4@+--+-- -   #VUID-vkCmdCopyQueryPoolResults-flags-00823# If+--     'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_64_BIT' is set+--     in @flags@ then @dstOffset@ and @stride@ /must/ be multiples of @8@+--+-- -   #VUID-vkCmdCopyQueryPoolResults-dstBuffer-00824# @dstBuffer@ /must/+--     have enough storage, from @dstOffset@, to contain the result of each+--     query, as described+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-memorylayout here>+--+-- -   #VUID-vkCmdCopyQueryPoolResults-dstBuffer-00825# @dstBuffer@ /must/+--     have been created with+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_DST_BIT'+--     usage flag+--+-- -   #VUID-vkCmdCopyQueryPoolResults-dstBuffer-00826# If @dstBuffer@ is+--     non-sparse then it /must/ be bound completely and contiguously to a+--     single 'Vulkan.Core10.Handles.DeviceMemory' object+--+-- -   #VUID-vkCmdCopyQueryPoolResults-queryType-00827# If the @queryType@+--     used to create @queryPool@ was+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_TIMESTAMP', @flags@ /must/+--     not contain+--     'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_PARTIAL_BIT'+--+-- -   #VUID-vkCmdCopyQueryPoolResults-queryType-03232# If the @queryType@+--     used to create @queryPool@ was+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR',+--     'Vulkan.Extensions.VK_KHR_performance_query.PhysicalDevicePerformanceQueryPropertiesKHR'::@allowCommandBufferQueryCopies@+--     /must/ be 'Vulkan.Core10.FundamentalTypes.TRUE'+--+-- -   #VUID-vkCmdCopyQueryPoolResults-queryType-03233# If the @queryType@+--     used to create @queryPool@ was+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR',+--     @flags@ /must/ not contain+--     'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_WITH_AVAILABILITY_BIT',+--     @VK_QUERY_RESULT_WITH_STATUS_BIT_KHR@,+--     'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_PARTIAL_BIT',+--     or 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_64_BIT'+--+-- -   #VUID-vkCmdCopyQueryPoolResults-queryType-03234# If the @queryType@+--     used to create @queryPool@ was+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR',+--     the @queryPool@ /must/ have been submitted once for each pass as+--     retrieved via a call to+--     'Vulkan.Extensions.VK_KHR_performance_query.getPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR'+--+-- -   #VUID-vkCmdCopyQueryPoolResults-queryType-02734#+--     'cmdCopyQueryPoolResults' /must/ not be called if the @queryType@+--     used to create @queryPool@ was+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_INTEL'+--+-- -   #VUID-vkCmdCopyQueryPoolResults-queryType-06901# If the @queryType@+--     used to create @queryPool@ was+--     @VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR@, then @flags@ /must/ include+--     @VK_QUERY_RESULT_WITH_STATUS_BIT_KHR@+--+-- -   #VUID-vkCmdCopyQueryPoolResults-flags-06902# If @flags@ includes+--     @VK_QUERY_RESULT_WITH_STATUS_BIT_KHR@, then it /must/ not include+--     'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_WITH_AVAILABILITY_BIT'+--+-- -   #VUID-vkCmdCopyQueryPoolResults-None-07429# All queries used by the+--     command /must/ not be active+--+-- -   #VUID-vkCmdCopyQueryPoolResults-None-08752# All queries used by the+--     command /must/ have been made /available/ by prior executed commands+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdCopyQueryPoolResults-commandBuffer-parameter#+--     @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdCopyQueryPoolResults-queryPool-parameter# @queryPool@+--     /must/ be a valid 'Vulkan.Core10.Handles.QueryPool' handle+--+-- -   #VUID-vkCmdCopyQueryPoolResults-dstBuffer-parameter# @dstBuffer@+--     /must/ be a valid 'Vulkan.Core10.Handles.Buffer' handle+--+-- -   #VUID-vkCmdCopyQueryPoolResults-flags-parameter# @flags@ /must/ be a+--     valid combination of+--     'Vulkan.Core10.Enums.QueryResultFlagBits.QueryResultFlagBits' values+--+-- -   #VUID-vkCmdCopyQueryPoolResults-commandBuffer-recording#+--     @commandBuffer@ /must/ be in the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- -   #VUID-vkCmdCopyQueryPoolResults-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics, or compute operations+--+-- -   #VUID-vkCmdCopyQueryPoolResults-renderpass# This command /must/ only+--     be called outside of a render pass instance+--+-- -   #VUID-vkCmdCopyQueryPoolResults-videocoding# This command /must/+--     only be called outside of a video coding scope+--+-- -   #VUID-vkCmdCopyQueryPoolResults-commonparent# Each of+--     @commandBuffer@, @dstBuffer@, and @queryPool@ /must/ have been+--     created, allocated, or retrieved from the same+--     'Vulkan.Core10.Handles.Device'+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Compute                                                                                                               |                                                                                                                                        |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize',+-- 'Vulkan.Core10.Handles.QueryPool',+-- 'Vulkan.Core10.Enums.QueryResultFlagBits.QueryResultFlags'+cmdCopyQueryPoolResults :: forall io+                         . (MonadIO io)+                        => -- | @commandBuffer@ is the command buffer into which this command will be+                           -- recorded.+                           CommandBuffer+                        -> -- | @queryPool@ is the query pool managing the queries containing the+                           -- desired results.+                           QueryPool+                        -> -- | @firstQuery@ is the initial query index.+                           ("firstQuery" ::: Word32)+                        -> -- | @queryCount@ is the number of queries. @firstQuery@ and @queryCount@+                           -- together define a range of queries.+                           ("queryCount" ::: Word32)+                        -> -- | @dstBuffer@ is a 'Vulkan.Core10.Handles.Buffer' object that will receive+                           -- the results of the copy command.+                           ("dstBuffer" ::: Buffer)+                        -> -- | @dstOffset@ is an offset into @dstBuffer@.+                           ("dstOffset" ::: DeviceSize)+                        -> -- | @stride@ is the stride in bytes between results for individual queries+                           -- within @dstBuffer@. The required size of the backing memory for+                           -- @dstBuffer@ is determined as described above for+                           -- 'Vulkan.Core10.Query.getQueryPoolResults'.+                           ("stride" ::: DeviceSize)+                        -> -- | @flags@ is a bitmask of+                           -- 'Vulkan.Core10.Enums.QueryResultFlagBits.QueryResultFlagBits' specifying+                           -- how and when results are returned.+                           QueryResultFlags+                        -> io ()+cmdCopyQueryPoolResults commandBuffer+                          queryPool+                          firstQuery+                          queryCount+                          dstBuffer+                          dstOffset+                          stride+                          flags = liftIO $ do+  let vkCmdCopyQueryPoolResultsPtr = pVkCmdCopyQueryPoolResults (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdCopyQueryPoolResultsPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdCopyQueryPoolResults is null" Nothing Nothing+  let vkCmdCopyQueryPoolResults' = mkVkCmdCopyQueryPoolResults vkCmdCopyQueryPoolResultsPtr+  traceAroundEvent "vkCmdCopyQueryPoolResults" (vkCmdCopyQueryPoolResults'+                                                  (commandBufferHandle (commandBuffer))+                                                  (queryPool)+                                                  (firstQuery)+                                                  (queryCount)+                                                  (dstBuffer)+                                                  (dstOffset)+                                                  (stride)+                                                  (flags))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdPushConstants+  :: FunPtr (Ptr CommandBuffer_T -> PipelineLayout -> ShaderStageFlags -> Word32 -> Word32 -> Ptr () -> IO ()) -> Ptr CommandBuffer_T -> PipelineLayout -> ShaderStageFlags -> Word32 -> Word32 -> Ptr () -> IO ()++-- | vkCmdPushConstants - Update the values of push constants+--+-- = Description+--+-- When a command buffer begins recording, all push constant values are+-- undefined. Reads of undefined push constant values by the executing+-- shader return undefined values.+--+-- Push constant values /can/ be updated incrementally, causing shader+-- stages in @stageFlags@ to read the new data from @pValues@ for push+-- constants modified by this command, while still reading the previous+-- data for push constants not modified by this command. When a+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-bindpoint-commands bound pipeline command>+-- is issued, the bound pipeline’s layout /must/ be compatible with the+-- layouts used to set the values of all push constants in the pipeline+-- layout’s push constant ranges, as described in+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-compatibility Pipeline Layout Compatibility>.+-- Binding a pipeline with a layout that is not compatible with the push+-- constant layout does not disturb the push constant values.+--+-- Note+--+-- As @stageFlags@ needs to include all flags the relevant push constant+-- ranges were created with, any flags that are not supported by the queue+-- family that the 'Vulkan.Core10.Handles.CommandPool' used to allocate+-- @commandBuffer@ was created on are ignored.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdPushConstants-offset-01795# For each byte in the range+--     specified by @offset@ and @size@ and for each shader stage in+--     @stageFlags@, there /must/ be a push constant range in @layout@ that+--     includes that byte and that stage+--+-- -   #VUID-vkCmdPushConstants-offset-01796# For each byte in the range+--     specified by @offset@ and @size@ and for each push constant range+--     that overlaps that byte, @stageFlags@ /must/ include all stages in+--     that push constant range’s+--     'Vulkan.Core10.PipelineLayout.PushConstantRange'::@stageFlags@+--+-- -   #VUID-vkCmdPushConstants-offset-00368# @offset@ /must/ be a multiple+--     of @4@+--+-- -   #VUID-vkCmdPushConstants-size-00369# @size@ /must/ be a multiple of+--     @4@+--+-- -   #VUID-vkCmdPushConstants-offset-00370# @offset@ /must/ be less than+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxPushConstantsSize@+--+-- -   #VUID-vkCmdPushConstants-size-00371# @size@ /must/ be less than or+--     equal to+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxPushConstantsSize@+--     minus @offset@+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdPushConstants-commandBuffer-parameter# @commandBuffer@+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdPushConstants-layout-parameter# @layout@ /must/ be a+--     valid 'Vulkan.Core10.Handles.PipelineLayout' handle+--+-- -   #VUID-vkCmdPushConstants-stageFlags-parameter# @stageFlags@ /must/+--     be a valid combination of+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlagBits' values+--+-- -   #VUID-vkCmdPushConstants-stageFlags-requiredbitmask# @stageFlags@+--     /must/ not be @0@+--+-- -   #VUID-vkCmdPushConstants-pValues-parameter# @pValues@ /must/ be a+--     valid pointer to an array of @size@ bytes+--+-- -   #VUID-vkCmdPushConstants-commandBuffer-recording# @commandBuffer@+--     /must/ be in the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- -   #VUID-vkCmdPushConstants-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics, or compute operations+--+-- -   #VUID-vkCmdPushConstants-videocoding# This command /must/ only be+--     called outside of a video coding scope+--+-- -   #VUID-vkCmdPushConstants-size-arraylength# @size@ /must/ be greater+--     than @0@+--+-- -   #VUID-vkCmdPushConstants-commonparent# Both of @commandBuffer@, and+--     @layout@ /must/ have been created, allocated, or retrieved from the+--     same 'Vulkan.Core10.Handles.Device'+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Compute                                                                                                               |                                                                                                                                        |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.Handles.PipelineLayout',+-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlags'+cmdPushConstants :: forall io+                  . (MonadIO io)+                 => -- | @commandBuffer@ is the command buffer in which the push constant update+                    -- will be recorded.+                    CommandBuffer+                 -> -- | @layout@ is the pipeline layout used to program the push constant+                    -- updates.+                    PipelineLayout+                 -> -- | @stageFlags@ is a bitmask of+                    -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlagBits' specifying+                    -- the shader stages that will use the push constants in the updated range.+                    ShaderStageFlags+                 -> -- | @offset@ is the start offset of the push constant range to update, in+                    -- units of bytes.+                    ("offset" ::: Word32)+                 -> -- | @size@ is the size of the push constant range to update, in units of+                    -- bytes.+                    ("size" ::: Word32)+                 -> -- | @pValues@ is a pointer to an array of @size@ bytes containing the new+                    -- push constant values.+                    ("values" ::: Ptr ())+                 -> io ()+cmdPushConstants commandBuffer+                   layout+                   stageFlags+                   offset+                   size+                   values = liftIO $ do+  let vkCmdPushConstantsPtr = pVkCmdPushConstants (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdPushConstantsPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdPushConstants is null" Nothing Nothing+  let vkCmdPushConstants' = mkVkCmdPushConstants vkCmdPushConstantsPtr+  traceAroundEvent "vkCmdPushConstants" (vkCmdPushConstants'+                                           (commandBufferHandle (commandBuffer))+                                           (layout)+                                           (stageFlags)+                                           (offset)+                                           (size)+                                           (values))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdBeginRenderPass+  :: FunPtr (Ptr CommandBuffer_T -> Ptr (SomeStruct RenderPassBeginInfo) -> SubpassContents -> IO ()) -> Ptr CommandBuffer_T -> Ptr (SomeStruct RenderPassBeginInfo) -> SubpassContents -> IO ()++-- | vkCmdBeginRenderPass - Begin a new render pass+--+-- = Description+--+-- After beginning a render pass instance, the command buffer is ready to+-- record the commands for the first subpass of that render pass.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdBeginRenderPass-initialLayout-00895# If any of the+--     @initialLayout@ or @finalLayout@ member of the+--     'Vulkan.Core10.Pass.AttachmentDescription' structures or the+--     @layout@ member of the 'Vulkan.Core10.Pass.AttachmentReference'+--     structures specified when creating the render pass specified in the+--     @renderPass@ member of @pRenderPassBegin@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL'+--     then the corresponding attachment image view of the framebuffer+--     specified in the @framebuffer@ member of @pRenderPassBegin@ /must/+--     have been created with a @usage@ value including+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_COLOR_ATTACHMENT_BIT'+--+-- -   #VUID-vkCmdBeginRenderPass-initialLayout-01758# If any of the+--     @initialLayout@ or @finalLayout@ member of the+--     'Vulkan.Core10.Pass.AttachmentDescription' structures or the+--     @layout@ member of the 'Vulkan.Core10.Pass.AttachmentReference'+--     structures specified when creating the render pass specified in the+--     @renderPass@ member of @pRenderPassBegin@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL',+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL',+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL',+--     or+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL'+--     then the corresponding attachment image view of the framebuffer+--     specified in the @framebuffer@ member of @pRenderPassBegin@ /must/+--     have been created with a @usage@ value including+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT'+--+-- -   #VUID-vkCmdBeginRenderPass-initialLayout-02842# If any of the+--     @initialLayout@ or @finalLayout@ member of the+--     'Vulkan.Core10.Pass.AttachmentDescription' structures or the+--     @layout@ member of the 'Vulkan.Core10.Pass.AttachmentReference'+--     structures specified when creating the render pass specified in the+--     @renderPass@ member of @pRenderPassBegin@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL',+--     or+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL',+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL',+--     or+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL'+--     then the corresponding attachment image view of the framebuffer+--     specified in the @framebuffer@ member of @pRenderPassBegin@ /must/+--     have been created with a @usage@ value including+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT'+--+-- -   #VUID-vkCmdBeginRenderPass-stencilInitialLayout-02843# If any of the+--     @stencilInitialLayout@ or @stencilFinalLayout@ member of the+--     'Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts.AttachmentDescriptionStencilLayout'+--     structures or the @stencilLayout@ member of the+--     'Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts.AttachmentReferenceStencilLayout'+--     structures specified when creating the render pass specified in the+--     @renderPass@ member of @pRenderPassBegin@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL',+--     or+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL'+--     then the corresponding attachment image view of the framebuffer+--     specified in the @framebuffer@ member of @pRenderPassBegin@ /must/+--     have been created with a @usage@ value including+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT'+--+-- -   #VUID-vkCmdBeginRenderPass-initialLayout-00897# If any of the+--     @initialLayout@ or @finalLayout@ member of the+--     'Vulkan.Core10.Pass.AttachmentDescription' structures or the+--     @layout@ member of the 'Vulkan.Core10.Pass.AttachmentReference'+--     structures specified when creating the render pass specified in the+--     @renderPass@ member of @pRenderPassBegin@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL'+--     then the corresponding attachment image view of the framebuffer+--     specified in the @framebuffer@ member of @pRenderPassBegin@ /must/+--     have been created with a @usage@ value including+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SAMPLED_BIT' or+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_INPUT_ATTACHMENT_BIT'+--+-- -   #VUID-vkCmdBeginRenderPass-initialLayout-00898# If any of the+--     @initialLayout@ or @finalLayout@ member of the+--     'Vulkan.Core10.Pass.AttachmentDescription' structures or the+--     @layout@ member of the 'Vulkan.Core10.Pass.AttachmentReference'+--     structures specified when creating the render pass specified in the+--     @renderPass@ member of @pRenderPassBegin@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL'+--     then the corresponding attachment image view of the framebuffer+--     specified in the @framebuffer@ member of @pRenderPassBegin@ /must/+--     have been created with a @usage@ value including+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_SRC_BIT'+--+-- -   #VUID-vkCmdBeginRenderPass-initialLayout-00899# If any of the+--     @initialLayout@ or @finalLayout@ member of the+--     'Vulkan.Core10.Pass.AttachmentDescription' structures or the+--     @layout@ member of the 'Vulkan.Core10.Pass.AttachmentReference'+--     structures specified when creating the render pass specified in the+--     @renderPass@ member of @pRenderPassBegin@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL'+--     then the corresponding attachment image view of the framebuffer+--     specified in the @framebuffer@ member of @pRenderPassBegin@ /must/+--     have been created with a @usage@ value including+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'+--+-- -   #VUID-vkCmdBeginRenderPass-initialLayout-00900# If the+--     @initialLayout@ member of any of the+--     'Vulkan.Core10.Pass.AttachmentDescription' structures specified when+--     creating the render pass specified in the @renderPass@ member of+--     @pRenderPassBegin@ is not+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_UNDEFINED', then each+--     such @initialLayout@ /must/ be equal to the current layout of the+--     corresponding attachment image subresource of the framebuffer+--     specified in the @framebuffer@ member of @pRenderPassBegin@+--+-- -   #VUID-vkCmdBeginRenderPass-srcStageMask-06451# The @srcStageMask@+--     members of any element of the @pDependencies@ member of+--     'Vulkan.Core10.Pass.RenderPassCreateInfo' used to create+--     @renderPass@ /must/ be supported by the capabilities of the queue+--     family identified by the @queueFamilyIndex@ member of the+--     'Vulkan.Core10.CommandPool.CommandPoolCreateInfo' used to create the+--     command pool which @commandBuffer@ was allocated from+--+-- -   #VUID-vkCmdBeginRenderPass-dstStageMask-06452# The @dstStageMask@+--     members of any element of the @pDependencies@ member of+--     'Vulkan.Core10.Pass.RenderPassCreateInfo' used to create+--     @renderPass@ /must/ be supported by the capabilities of the queue+--     family identified by the @queueFamilyIndex@ member of the+--     'Vulkan.Core10.CommandPool.CommandPoolCreateInfo' used to create the+--     command pool which @commandBuffer@ was allocated from+--+-- -   #VUID-vkCmdBeginRenderPass-framebuffer-02532# For any attachment in+--     @framebuffer@ that is used by @renderPass@ and is bound to memory+--     locations that are also bound to another attachment used by+--     @renderPass@, and if at least one of those uses causes either+--     attachment to be written to, both attachments /must/ have had the+--     'Vulkan.Core10.Enums.AttachmentDescriptionFlagBits.ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT'+--     set+--+-- -   #VUID-vkCmdBeginRenderPass-framebuffer-09045# If any attachments+--     specified in @framebuffer@ are used by @renderPass@ and are bound to+--     overlapping memory locations, there /must/ be only one that is used+--     as a color attachment, depth\/stencil, or resolve attachment in any+--     subpass+--+-- -   #VUID-vkCmdBeginRenderPass-initialLayout-07000# If any of the+--     @initialLayout@ or @finalLayout@ member of the+--     'Vulkan.Core10.Pass.AttachmentDescription' structures or the+--     @layout@ member of the 'Vulkan.Core10.Pass.AttachmentReference'+--     structures specified when creating the render pass specified in the+--     @renderPass@ member of @pRenderPassBegin@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'+--     then the corresponding attachment image view of the framebuffer+--     specified in the @framebuffer@ member of @pRenderPassBegin@ /must/+--     have been created with a @usage@ value including either the+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_COLOR_ATTACHMENT_BIT'+--     or+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT'+--     and either the+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_INPUT_ATTACHMENT_BIT'+--     or 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SAMPLED_BIT'+--     usage bits+--+-- -   #VUID-vkCmdBeginRenderPass-initialLayout-07001# If any of the+--     @initialLayout@ or @finalLayout@ member of the+--     'Vulkan.Core10.Pass.AttachmentDescription' structures or the+--     @layout@ member of the 'Vulkan.Core10.Pass.AttachmentReference'+--     structures specified when creating the render pass specified in the+--     @renderPass@ member of @pRenderPassBegin@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'+--     then the corresponding attachment image view of the framebuffer+--     specified in the @framebuffer@ member of @pRenderPassBegin@ /must/+--     have been created with a @usage@ value the+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'+--     usage bit+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdBeginRenderPass-commandBuffer-parameter# @commandBuffer@+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdBeginRenderPass-pRenderPassBegin-parameter#+--     @pRenderPassBegin@ /must/ be a valid pointer to a valid+--     'RenderPassBeginInfo' structure+--+-- -   #VUID-vkCmdBeginRenderPass-contents-parameter# @contents@ /must/ be+--     a valid 'Vulkan.Core10.Enums.SubpassContents.SubpassContents' value+--+-- -   #VUID-vkCmdBeginRenderPass-commandBuffer-recording# @commandBuffer@+--     /must/ be in the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- -   #VUID-vkCmdBeginRenderPass-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- -   #VUID-vkCmdBeginRenderPass-renderpass# This command /must/ only be+--     called outside of a render pass instance+--+-- -   #VUID-vkCmdBeginRenderPass-videocoding# This command /must/ only be+--     called outside of a video coding scope+--+-- -   #VUID-vkCmdBeginRenderPass-bufferlevel# @commandBuffer@ /must/ be a+--     primary 'Vulkan.Core10.Handles.CommandBuffer'+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |+-- |                                                                                                                            |                                                                                                                        |                                                                                                                             |                                                                                                                       | State                                                                                                                                  |+-- |                                                                                                                            |                                                                                                                        |                                                                                                                             |                                                                                                                       | Synchronization                                                                                                                        |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.CommandBuffer', 'RenderPassBeginInfo',+-- 'Vulkan.Core10.Enums.SubpassContents.SubpassContents'+cmdBeginRenderPass :: forall a io+                    . (Extendss RenderPassBeginInfo a, PokeChain a, MonadIO io)+                   => -- | @commandBuffer@ is the command buffer in which to record the command.+                      CommandBuffer+                   -> -- | @pRenderPassBegin@ is a pointer to a 'RenderPassBeginInfo' structure+                      -- specifying the render pass to begin an instance of, and the framebuffer+                      -- the instance uses.+                      (RenderPassBeginInfo a)+                   -> -- | @contents@ is a 'Vulkan.Core10.Enums.SubpassContents.SubpassContents'+                      -- value specifying how the commands in the first subpass will be provided.+                      SubpassContents+                   -> io ()+cmdBeginRenderPass commandBuffer+                     renderPassBegin+                     contents = liftIO . evalContT $ do+  let vkCmdBeginRenderPassPtr = pVkCmdBeginRenderPass (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  lift $ unless (vkCmdBeginRenderPassPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBeginRenderPass is null" Nothing Nothing+  let vkCmdBeginRenderPass' = mkVkCmdBeginRenderPass vkCmdBeginRenderPassPtr+  pRenderPassBegin <- ContT $ withCStruct (renderPassBegin)+  lift $ traceAroundEvent "vkCmdBeginRenderPass" (vkCmdBeginRenderPass'+                                                    (commandBufferHandle (commandBuffer))+                                                    (forgetExtensions pRenderPassBegin)+                                                    (contents))+  pure $ ()++-- | This function will call the supplied action between calls to+-- 'cmdBeginRenderPass' and 'cmdEndRenderPass'+--+-- Note that 'cmdEndRenderPass' is *not* called if an exception is thrown+-- by the inner action.+cmdUseRenderPass :: forall a io r . (Extendss RenderPassBeginInfo a, PokeChain a, MonadIO io) => CommandBuffer -> RenderPassBeginInfo a -> SubpassContents -> io r -> io r+cmdUseRenderPass commandBuffer pRenderPassBegin contents a =+  (cmdBeginRenderPass commandBuffer+                        pRenderPassBegin+                        contents) *> a <* (cmdEndRenderPass commandBuffer)+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdNextSubpass+  :: FunPtr (Ptr CommandBuffer_T -> SubpassContents -> IO ()) -> Ptr CommandBuffer_T -> SubpassContents -> IO ()++-- | vkCmdNextSubpass - Transition to the next subpass of a render pass+--+-- = Description+--+-- The subpass index for a render pass begins at zero when+-- 'cmdBeginRenderPass' is recorded, and increments each time+-- 'cmdNextSubpass' is recorded.+--+-- After transitioning to the next subpass, the application /can/ record+-- the commands for that subpass.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdNextSubpass-None-00909# The current subpass index /must/+--     be less than the number of subpasses in the render pass minus one+--+-- -   #VUID-vkCmdNextSubpass-None-02349# This command /must/ not be+--     recorded when transform feedback is active+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdNextSubpass-commandBuffer-parameter# @commandBuffer@+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdNextSubpass-contents-parameter# @contents@ /must/ be a+--     valid 'Vulkan.Core10.Enums.SubpassContents.SubpassContents' value+--+-- -   #VUID-vkCmdNextSubpass-commandBuffer-recording# @commandBuffer@+--     /must/ be in the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- -   #VUID-vkCmdNextSubpass-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- -   #VUID-vkCmdNextSubpass-renderpass# This command /must/ only be+--     called inside of a render pass instance+--+-- -   #VUID-vkCmdNextSubpass-videocoding# This command /must/ only be+--     called outside of a video coding scope+--+-- -   #VUID-vkCmdNextSubpass-bufferlevel# @commandBuffer@ /must/ be a+--     primary 'Vulkan.Core10.Handles.CommandBuffer'+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Inside                                                                                                                 | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |+-- |                                                                                                                            |                                                                                                                        |                                                                                                                             |                                                                                                                       | State                                                                                                                                  |+-- |                                                                                                                            |                                                                                                                        |                                                                                                                             |                                                                                                                       | Synchronization                                                                                                                        |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.Enums.SubpassContents.SubpassContents'+cmdNextSubpass :: forall io+                . (MonadIO io)+               => -- | @commandBuffer@ is the command buffer in which to record the command.+                  CommandBuffer+               -> -- | @contents@ specifies how the commands in the next subpass will be+                  -- provided, in the same fashion as the corresponding parameter of+                  -- 'cmdBeginRenderPass'.+                  SubpassContents+               -> io ()+cmdNextSubpass commandBuffer contents = liftIO $ do+  let vkCmdNextSubpassPtr = pVkCmdNextSubpass (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdNextSubpassPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdNextSubpass is null" Nothing Nothing+  let vkCmdNextSubpass' = mkVkCmdNextSubpass vkCmdNextSubpassPtr+  traceAroundEvent "vkCmdNextSubpass" (vkCmdNextSubpass'+                                         (commandBufferHandle (commandBuffer))+                                         (contents))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdEndRenderPass+  :: FunPtr (Ptr CommandBuffer_T -> IO ()) -> Ptr CommandBuffer_T -> IO ()++-- | vkCmdEndRenderPass - End the current render pass+--+-- = Description+--+-- Ending a render pass instance performs any multisample resolve+-- operations on the final subpass.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdEndRenderPass-None-00910# The current subpass index+--     /must/ be equal to the number of subpasses in the render pass minus+--     one+--+-- -   #VUID-vkCmdEndRenderPass-None-02351# This command /must/ not be+--     recorded when transform feedback is active+--+-- -   #VUID-vkCmdEndRenderPass-None-06170# The current render pass+--     instance /must/ not have been begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--+-- -   #VUID-vkCmdEndRenderPass-None-07004# If 'cmdBeginQuery'* was called+--     within a subpass of the render pass, the corresponding+--     'cmdEndQuery'* /must/ have been called subsequently within the same+--     subpass+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdEndRenderPass-commandBuffer-parameter# @commandBuffer@+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdEndRenderPass-commandBuffer-recording# @commandBuffer@+--     /must/ be in the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- -   #VUID-vkCmdEndRenderPass-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- -   #VUID-vkCmdEndRenderPass-renderpass# This command /must/ only be+--     called inside of a render pass instance+--+-- -   #VUID-vkCmdEndRenderPass-videocoding# This command /must/ only be+--     called outside of a video coding scope+--+-- -   #VUID-vkCmdEndRenderPass-bufferlevel# @commandBuffer@ /must/ be a+--     primary 'Vulkan.Core10.Handles.CommandBuffer'+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Inside                                                                                                                 | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |+-- |                                                                                                                            |                                                                                                                        |                                                                                                                             |                                                                                                                       | State                                                                                                                                  |+-- |                                                                                                                            |                                                                                                                        |                                                                                                                             |                                                                                                                       | Synchronization                                                                                                                        |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.CommandBuffer'+cmdEndRenderPass :: forall io+                  . (MonadIO io)+                 => -- | @commandBuffer@ is the command buffer in which to end the current render+                    -- pass instance.+                    CommandBuffer+                 -> io ()+cmdEndRenderPass commandBuffer = liftIO $ do+  let vkCmdEndRenderPassPtr = pVkCmdEndRenderPass (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdEndRenderPassPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdEndRenderPass is null" Nothing Nothing+  let vkCmdEndRenderPass' = mkVkCmdEndRenderPass vkCmdEndRenderPassPtr+  traceAroundEvent "vkCmdEndRenderPass" (vkCmdEndRenderPass'+                                           (commandBufferHandle (commandBuffer)))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdExecuteCommands+  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Ptr (Ptr CommandBuffer_T) -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Ptr (Ptr CommandBuffer_T) -> IO ()++-- | vkCmdExecuteCommands - Execute a secondary command buffer from a primary+-- command buffer+--+-- = Description+--+-- If any element of @pCommandBuffers@ was not recorded with the+-- 'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT'+-- flag, and it was recorded into any other primary command buffer which is+-- currently in the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle executable or recording state>,+-- that primary command buffer becomes+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle invalid>.+--+-- If the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-nestedCommandBuffer nestedCommandBuffer>+-- feature is enabled it is valid usage for 'cmdExecuteCommands' to also be+-- recorded to a+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#glossary secondary command buffer>.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdExecuteCommands-pCommandBuffers-00088# Each element of+--     @pCommandBuffers@ /must/ have been allocated with a @level@ of+--     'Vulkan.Core10.Enums.CommandBufferLevel.COMMAND_BUFFER_LEVEL_SECONDARY'+--+-- -   #VUID-vkCmdExecuteCommands-pCommandBuffers-00089# Each element of+--     @pCommandBuffers@ /must/ be in the+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle pending or executable state>+--+-- -   #VUID-vkCmdExecuteCommands-pCommandBuffers-00091# If any element of+--     @pCommandBuffers@ was not recorded with the+--     'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT'+--     flag, it /must/ not be in the+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle pending state>+--+-- -   #VUID-vkCmdExecuteCommands-pCommandBuffers-00092# If any element of+--     @pCommandBuffers@ was not recorded with the+--     'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT'+--     flag, it /must/ not have already been recorded to @commandBuffer@+--+-- -   #VUID-vkCmdExecuteCommands-pCommandBuffers-00093# If any element of+--     @pCommandBuffers@ was not recorded with the+--     'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT'+--     flag, it /must/ not appear more than once in @pCommandBuffers@+--+-- -   #VUID-vkCmdExecuteCommands-pCommandBuffers-00094# Each element of+--     @pCommandBuffers@ /must/ have been allocated from a+--     'Vulkan.Core10.Handles.CommandPool' that was created for the same+--     queue family as the 'Vulkan.Core10.Handles.CommandPool' from which+--     @commandBuffer@ was allocated+--+-- -   #VUID-vkCmdExecuteCommands-pCommandBuffers-00096# If+--     'cmdExecuteCommands' is being called within a render pass instance,+--     each element of @pCommandBuffers@ /must/ have been recorded with the+--     'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT'+--+-- -   #VUID-vkCmdExecuteCommands-pCommandBuffers-00099# If+--     'cmdExecuteCommands' is being called within a render pass instance,+--     and any element of @pCommandBuffers@ was recorded with+--     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo'::@framebuffer@+--     not equal to 'Vulkan.Core10.APIConstants.NULL_HANDLE', that+--     'Vulkan.Core10.Handles.Framebuffer' /must/ match the+--     'Vulkan.Core10.Handles.Framebuffer' used in the current render pass+--     instance+--+-- -   #VUID-vkCmdExecuteCommands-contents-06018# If 'cmdExecuteCommands'+--     is being called within a render pass instance begun with+--     'cmdBeginRenderPass', its @contents@ parameter /must/ have been set+--     to+--     'Vulkan.Core10.Enums.SubpassContents.SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS'+--     , or+--     'Vulkan.Core10.Enums.SubpassContents.SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT'+--+-- -   #VUID-vkCmdExecuteCommands-pCommandBuffers-06019# If+--     'cmdExecuteCommands' is being called within a render pass instance+--     begun with 'cmdBeginRenderPass', each element of @pCommandBuffers@+--     /must/ have been recorded with+--     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo'::@subpass@+--     set to the index of the subpass which the given command buffer will+--     be executed in+--+-- -   #VUID-vkCmdExecuteCommands-pBeginInfo-06020# If 'cmdExecuteCommands'+--     is being called within a render pass instance begun with+--     'cmdBeginRenderPass', the render passes specified in the+--     @pBeginInfo->pInheritanceInfo->renderPass@ members of the+--     'Vulkan.Core10.CommandBuffer.beginCommandBuffer' commands used to+--     begin recording each element of @pCommandBuffers@ /must/ be+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-compatibility compatible>+--     with the current render pass+--+-- -   #VUID-vkCmdExecuteCommands-pNext-02865# If 'cmdExecuteCommands' is+--     being called within a render pass instance that included+--     'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM'+--     in the @pNext@ chain of 'RenderPassBeginInfo', then each element of+--     @pCommandBuffers@ /must/ have been recorded with+--     'Vulkan.Extensions.VK_QCOM_render_pass_transform.CommandBufferInheritanceRenderPassTransformInfoQCOM'+--     in the @pNext@ chain of+--     'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'+--+-- -   #VUID-vkCmdExecuteCommands-pNext-02866# If 'cmdExecuteCommands' is+--     being called within a render pass instance that included+--     'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM'+--     in the @pNext@ chain of 'RenderPassBeginInfo', then each element of+--     @pCommandBuffers@ /must/ have been recorded with+--     'Vulkan.Extensions.VK_QCOM_render_pass_transform.CommandBufferInheritanceRenderPassTransformInfoQCOM'::@transform@+--     identical to+--     'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM'::@transform@+--+-- -   #VUID-vkCmdExecuteCommands-pNext-02867# If 'cmdExecuteCommands' is+--     being called within a render pass instance that included+--     'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM'+--     in the @pNext@ chain of 'RenderPassBeginInfo', then each element of+--     @pCommandBuffers@ /must/ have been recorded with+--     'Vulkan.Extensions.VK_QCOM_render_pass_transform.CommandBufferInheritanceRenderPassTransformInfoQCOM'::@renderArea@+--     identical to 'RenderPassBeginInfo'::@renderArea@+--+-- -   #VUID-vkCmdExecuteCommands-pCommandBuffers-00100# If+--     'cmdExecuteCommands' is not being called within a render pass+--     instance, each element of @pCommandBuffers@ /must/ not have been+--     recorded with the+--     'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT'+--+-- -   #VUID-vkCmdExecuteCommands-commandBuffer-00101# If the+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-inheritedQueries inheritedQueries>+--     feature is not enabled, @commandBuffer@ /must/ not have any queries+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-active active>+--+-- -   #VUID-vkCmdExecuteCommands-commandBuffer-00102# If @commandBuffer@+--     has a 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_OCCLUSION' query+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-active active>,+--     then each element of @pCommandBuffers@ /must/ have been recorded+--     with+--     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo'::@occlusionQueryEnable@+--     set to 'Vulkan.Core10.FundamentalTypes.TRUE'+--+-- -   #VUID-vkCmdExecuteCommands-commandBuffer-00103# If @commandBuffer@+--     has a 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_OCCLUSION' query+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-active active>,+--     then each element of @pCommandBuffers@ /must/ have been recorded+--     with+--     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo'::@queryFlags@+--     having all bits set that are set for the query+--+-- -   #VUID-vkCmdExecuteCommands-commandBuffer-00104# If @commandBuffer@+--     has a 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PIPELINE_STATISTICS'+--     query+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-active active>,+--     then each element of @pCommandBuffers@ /must/ have been recorded+--     with+--     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo'::@pipelineStatistics@+--     having all bits set that are set in the+--     'Vulkan.Core10.Handles.QueryPool' the query uses+--+-- -   #VUID-vkCmdExecuteCommands-pCommandBuffers-00105# Each element of+--     @pCommandBuffers@ /must/ not begin any query types that are+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-active active>+--     in @commandBuffer@+--+-- -   #VUID-vkCmdExecuteCommands-commandBuffer-07594# @commandBuffer@+--     /must/ not have any queries other than+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_OCCLUSION' and+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PIPELINE_STATISTICS'+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-active active>+--+-- -   #VUID-vkCmdExecuteCommands-commandBuffer-01820# If @commandBuffer@+--     is a protected command buffer and+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+--     is not supported, each element of @pCommandBuffers@ /must/ be a+--     protected command buffer+--+-- -   #VUID-vkCmdExecuteCommands-commandBuffer-01821# If @commandBuffer@+--     is an unprotected command buffer and+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+--     is not supported, each element of @pCommandBuffers@ /must/ be an+--     unprotected command buffer+--+-- -   #VUID-vkCmdExecuteCommands-None-02286# This command /must/ not be+--     recorded when transform feedback is active+--+-- -   #VUID-vkCmdExecuteCommands-commandBuffer-06533# If+--     'cmdExecuteCommands' is being called within a render pass instance+--     and any recorded command in @commandBuffer@ in the current subpass+--     will write to an image subresource as an attachment, commands+--     recorded in elements of @pCommandBuffers@ /must/ not read from the+--     memory backing that image subresource in any other way+--+-- -   #VUID-vkCmdExecuteCommands-commandBuffer-06534# If+--     'cmdExecuteCommands' is being called within a render pass instance+--     and any recorded command in @commandBuffer@ in the current subpass+--     will read from an image subresource used as an attachment in any way+--     other than as an attachment, commands recorded in elements of+--     @pCommandBuffers@ /must/ not write to that image subresource as an+--     attachment+--+-- -   #VUID-vkCmdExecuteCommands-pCommandBuffers-06535# If+--     'cmdExecuteCommands' is being called within a render pass instance+--     and any recorded command in a given element of @pCommandBuffers@+--     will write to an image subresource as an attachment, commands+--     recorded in elements of @pCommandBuffers@ at a higher index /must/+--     not read from the memory backing that image subresource in any other+--     way+--+-- -   #VUID-vkCmdExecuteCommands-pCommandBuffers-06536# If+--     'cmdExecuteCommands' is being called within a render pass instance+--     and any recorded command in a given element of @pCommandBuffers@+--     will read from an image subresource used as an attachment in any way+--     other than as an attachment, commands recorded in elements of+--     @pCommandBuffers@ at a higher index /must/ not write to that image+--     subresource as an attachment+--+-- -   #VUID-vkCmdExecuteCommands-pCommandBuffers-06021# If+--     @pCommandBuffers@ contains any+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-suspension suspended render pass instances>,+--     there /must/ be no action or synchronization commands between that+--     render pass instance and any render pass instance that resumes it+--+-- -   #VUID-vkCmdExecuteCommands-pCommandBuffers-06022# If+--     @pCommandBuffers@ contains any+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-suspension suspended render pass instances>,+--     there /must/ be no render pass instances between that render pass+--     instance and any render pass instance that resumes it+--+-- -   #VUID-vkCmdExecuteCommands-variableSampleLocations-06023# If the+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-variableSampleLocations variableSampleLocations>+--     limit is not supported, and any element of @pCommandBuffers@+--     contains any+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-suspension suspended render pass instances>,+--     where a graphics pipeline has been bound, any pipelines bound in the+--     render pass instance that resumes it, or any subsequent render pass+--     instances that resume from that one and so on, /must/ use the same+--     sample locations+--+-- -   #VUID-vkCmdExecuteCommands-flags-06024# If 'cmdExecuteCommands' is+--     being called within a render pass instance begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     its+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@flags@+--     parameter /must/ have included+--     'Vulkan.Core13.Enums.RenderingFlagBits.RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT'+--+-- -   #VUID-vkCmdExecuteCommands-pBeginInfo-06025# If 'cmdExecuteCommands'+--     is being called within a render pass instance begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the render passes specified in the+--     @pBeginInfo->pInheritanceInfo->renderPass@ members of the+--     'Vulkan.Core10.CommandBuffer.beginCommandBuffer' commands used to+--     begin recording each element of @pCommandBuffers@ /must/ be+--     'Vulkan.Core10.APIConstants.NULL_HANDLE'+--+-- -   #VUID-vkCmdExecuteCommands-flags-06026# If 'cmdExecuteCommands' is+--     being called within a render pass instance begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the @flags@ member of the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'+--     structure included in the @pNext@ chain of+--     'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@pInheritanceInfo@+--     used to begin recording each element of @pCommandBuffers@ /must/ be+--     equal to the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@flags@+--     parameter to+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     excluding+--     'Vulkan.Core13.Enums.RenderingFlagBits.RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT'+--+-- -   #VUID-vkCmdExecuteCommands-colorAttachmentCount-06027# If+--     'cmdExecuteCommands' is being called within a render pass instance+--     begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the @colorAttachmentCount@ member of the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'+--     structure included in the @pNext@ chain of+--     'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@pInheritanceInfo@+--     used to begin recording each element of @pCommandBuffers@ /must/ be+--     equal to the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@+--     parameter to+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--+-- -   #VUID-vkCmdExecuteCommands-imageView-06028# If 'cmdExecuteCommands'+--     is being called within a render pass instance begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     if the @imageView@ member of an element of the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@+--     parameter to+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the corresponding+--     element of the @pColorAttachmentFormats@ member of the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'+--     structure included in the @pNext@ chain of+--     'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@pInheritanceInfo@+--     used to begin recording each element of @pCommandBuffers@ /must/ be+--     equal to the format used to create that image view+--+-- -   #VUID-vkCmdExecuteCommands-imageView-07606# If 'cmdExecuteCommands'+--     is being called within a render pass instance begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     if the @imageView@ member of an element of the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@+--     parameter to+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     is 'Vulkan.Core10.APIConstants.NULL_HANDLE', the corresponding+--     element of the @pColorAttachmentFormats@ member of the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'+--     structure included in the @pNext@ chain of+--     'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@pInheritanceInfo@+--     used to begin recording each element of @pCommandBuffers@ /must/ be+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'+--+-- -   #VUID-vkCmdExecuteCommands-pDepthAttachment-06029# If+--     'cmdExecuteCommands' is being called within a render pass instance+--     begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     if the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@+--     parameter to+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the+--     @depthAttachmentFormat@ member of the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'+--     structure included in the @pNext@ chain of+--     'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@pInheritanceInfo@+--     used to begin recording each element of @pCommandBuffers@ /must/ be+--     equal to the format used to create that image view+--+-- -   #VUID-vkCmdExecuteCommands-pStencilAttachment-06030# If+--     'cmdExecuteCommands' is being called within a render pass instance+--     begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     if the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@+--     parameter to+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the+--     @stencilAttachmentFormat@ member of the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'+--     structure included in the @pNext@ chain of+--     'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@pInheritanceInfo@+--     used to begin recording each element of @pCommandBuffers@ /must/ be+--     equal to the format used to create that image view+--+-- -   #VUID-vkCmdExecuteCommands-pDepthAttachment-06774# If+--     'cmdExecuteCommands' is being called within a render pass instance+--     begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     and the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@+--     parameter to+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the+--     @depthAttachmentFormat@ member of the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'+--     structure included in the @pNext@ chain of+--     'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@pInheritanceInfo@+--     used to begin recording each element of @pCommandBuffers@ /must/ be+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'+--+-- -   #VUID-vkCmdExecuteCommands-pStencilAttachment-06775# If+--     'cmdExecuteCommands' is being called within a render pass instance+--     begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     and the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@+--     parameter to+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the+--     @stencilAttachmentFormat@ member of the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'+--     structure included in the @pNext@ chain of+--     'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@pInheritanceInfo@+--     used to begin recording each element of @pCommandBuffers@ /must/ be+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'+--+-- -   #VUID-vkCmdExecuteCommands-viewMask-06031# If 'cmdExecuteCommands'+--     is being called within a render pass instance begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the @viewMask@ member of the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'+--     structure included in the @pNext@ chain of+--     'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@pInheritanceInfo@+--     used to begin recording each element of @pCommandBuffers@ /must/ be+--     equal to the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@viewMask@+--     parameter to+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--+-- -   #VUID-vkCmdExecuteCommands-pNext-06032# If 'cmdExecuteCommands' is+--     being called within a render pass instance begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     and the @pNext@ chain of+--     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo' includes+--     a+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+--     or+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+--     structure, if the @imageView@ member of an element of the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@+--     parameter to+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the corresponding+--     element of the @pColorAttachmentSamples@ member of the+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+--     or+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+--     structure included in the @pNext@ chain of+--     'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@pInheritanceInfo@+--     used to begin recording each element of @pCommandBuffers@ /must/ be+--     equal to the sample count used to create that image view+--+-- -   #VUID-vkCmdExecuteCommands-pNext-06033# If 'cmdExecuteCommands' is+--     being called within a render pass instance begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     and the @pNext@ chain of+--     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo' includes+--     a+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+--     or+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+--     structure, if the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@+--     parameter to+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the+--     @depthStencilAttachmentSamples@ member of the+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+--     or+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+--     structure included in the @pNext@ chain of+--     'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@pInheritanceInfo@+--     used to begin recording each element of @pCommandBuffers@ /must/ be+--     equal to the sample count used to create that image view+--+-- -   #VUID-vkCmdExecuteCommands-pNext-06034# If 'cmdExecuteCommands' is+--     being called within a render pass instance begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     and the @pNext@ chain of+--     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo' includes+--     a+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+--     or+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+--     structure, if the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@+--     parameter to+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the+--     @depthStencilAttachmentSamples@ member of the+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+--     or+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+--     structure included in the @pNext@ chain of+--     'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo'::@pInheritanceInfo@+--     used to begin recording each element of @pCommandBuffers@ /must/ be+--     equal to the sample count used to create that image view+--+-- -   #VUID-vkCmdExecuteCommands-pNext-06035# If 'cmdExecuteCommands' is+--     being called within a render pass instance begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     and the @pNext@ chain of+--     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo' does not+--     include a+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+--     or+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+--     structure, if the @imageView@ member of an element of the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@+--     parameter to+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'::@rasterizationSamples@+--     /must/ be equal to the sample count used to create that image view+--+-- -   #VUID-vkCmdExecuteCommands-pNext-06036# If 'cmdExecuteCommands' is+--     being called within a render pass instance begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     and the @pNext@ chain of+--     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo' does not+--     include a+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+--     or+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+--     structure, if the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@+--     parameter to+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'::@rasterizationSamples@+--     /must/ be equal to the sample count used to create that image view+--+-- -   #VUID-vkCmdExecuteCommands-pNext-06037# If 'cmdExecuteCommands' is+--     being called within a render pass instance begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     and the @pNext@ chain of+--     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo' does not+--     include a+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+--     or+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+--     structure, if the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@+--     parameter to+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'::@rasterizationSamples@+--     /must/ be equal to the sample count used to create that image view+--+-- -   #VUID-vkCmdExecuteCommands-pNext-09299# If 'cmdExecuteCommands' is+--     being called within a render pass instance begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     with any color attachment using a resolve mode of+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',+--     the @pNext@ chain of+--     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo' used to+--     create each element of @pCommandBuffers@ /must/ include a+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'+--     structure with a @externalFormat@ matching that used to create the+--     resolve attachment in the render pass+--+-- -   #VUID-vkCmdExecuteCommands-pNext-09300# If 'cmdExecuteCommands' is+--     being called within a render pass instance begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     with any color attachment using a resolve mode of+--     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',+--     and the @pNext@ chain of+--     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo' does not+--     include a+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+--     or+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+--     structure, the value of+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'::@rasterizationSamples@+--     /must/ be+--     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'+--+-- -   #VUID-vkCmdExecuteCommands-commandBuffer-09375# @commandBuffer@+--     /must/ not be a+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#glossary secondary command buffer>+--     unless the+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-nestedCommandBuffer nestedCommandBuffer>+--     feature is enabled+--+-- -   #VUID-vkCmdExecuteCommands-nestedCommandBuffer-09376# If the+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-nestedCommandBuffer nestedCommandBuffer>+--     feature is enabled, the+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#glossary command buffer nesting level>+--     of each element of @pCommandBuffers@ /must/ be less than+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxCommandBufferNestingLevel maxCommandBufferNestingLevel>+--+-- -   #VUID-vkCmdExecuteCommands-nestedCommandBufferRendering-09377# If+--     the+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-nestedCommandBufferRendering nestedCommandBufferRendering>+--     feature is not enabled, and @commandBuffer@ is a+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#glossary secondary command buffer>,+--     @commandBuffer@ /must/ not have been recorded with+--     'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT'+--+-- -   #VUID-vkCmdExecuteCommands-nestedCommandBufferSimultaneousUse-09378#+--     If the+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-nestedCommandBufferSimultaneousUse nestedCommandBufferSimultaneousUse>+--     feature is not enabled, and @commandBuffer@ is a+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#glossary secondary command buffer>,+--     each element of @pCommandBuffers@ /must/ not have been recorded with+--     'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT'+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdExecuteCommands-commandBuffer-parameter# @commandBuffer@+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdExecuteCommands-pCommandBuffers-parameter#+--     @pCommandBuffers@ /must/ be a valid pointer to an array of+--     @commandBufferCount@ valid 'Vulkan.Core10.Handles.CommandBuffer'+--     handles+--+-- -   #VUID-vkCmdExecuteCommands-commandBuffer-recording# @commandBuffer@+--     /must/ be in the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- -   #VUID-vkCmdExecuteCommands-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support transfer, graphics, or compute+--     operations+--+-- -   #VUID-vkCmdExecuteCommands-videocoding# This command /must/ only be+--     called outside of a video coding scope+--+-- -   #VUID-vkCmdExecuteCommands-commandBufferCount-arraylength#+--     @commandBufferCount@ /must/ be greater than @0@+--+-- -   #VUID-vkCmdExecuteCommands-commonparent# Both of @commandBuffer@,+--     and the elements of @pCommandBuffers@ /must/ have been created,+--     allocated, or retrieved from the same 'Vulkan.Core10.Handles.Device'+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Transfer                                                                                                              | Indirection                                                                                                                            |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Graphics                                                                                                              |                                                                                                                                        |+-- |                                                                                                                            |                                                                                                                        |                                                                                                                             | Compute                                                                                                               |                                                                                                                                        |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.Handles.CommandBuffer'+cmdExecuteCommands :: forall io+                    . (MonadIO io)+                   => -- | @commandBuffer@ is a handle to a primary command buffer that the+                      -- secondary command buffers are executed in.+                      CommandBuffer+                   -> -- | @pCommandBuffers@ is a pointer to an array of @commandBufferCount@+                      -- secondary command buffer handles, which are recorded to execute in the+                      -- primary command buffer in the order they are listed in the array.+                      ("commandBuffers" ::: Vector CommandBuffer)+                   -> io ()+cmdExecuteCommands commandBuffer commandBuffers = liftIO . evalContT $ do+  let vkCmdExecuteCommandsPtr = pVkCmdExecuteCommands (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  lift $ unless (vkCmdExecuteCommandsPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdExecuteCommands is null" Nothing Nothing+  let vkCmdExecuteCommands' = mkVkCmdExecuteCommands vkCmdExecuteCommandsPtr+  pPCommandBuffers <- ContT $ allocaBytes @(Ptr CommandBuffer_T) ((Data.Vector.length (commandBuffers)) * 8)+  lift $ Data.Vector.imapM_ (\i e -> poke (pPCommandBuffers `plusPtr` (8 * (i)) :: Ptr (Ptr CommandBuffer_T)) (commandBufferHandle (e))) (commandBuffers)+  lift $ traceAroundEvent "vkCmdExecuteCommands" (vkCmdExecuteCommands'+                                                    (commandBufferHandle (commandBuffer))+                                                    ((fromIntegral (Data.Vector.length $ (commandBuffers)) :: Word32))+                                                    (pPCommandBuffers))+  pure $ ()+++-- | VkClearRect - Structure specifying a clear rectangle+--+-- = Description+--+-- The layers [@baseArrayLayer@, @baseArrayLayer@ + @layerCount@) counting+-- from the base layer of the attachment image view are cleared.+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.FundamentalTypes.Rect2D', 'cmdClearAttachments'+data ClearRect = ClearRect+  { -- | @rect@ is the two-dimensional region to be cleared.+    rect :: Rect2D+  , -- | @baseArrayLayer@ is the first layer to be cleared.+    baseArrayLayer :: Word32+  , -- | @layerCount@ is the number of layers to clear.+    layerCount :: Word32+  }+  deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (ClearRect)+#endif+deriving instance Show ClearRect++instance ToCStruct ClearRect where+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p ClearRect{..} f = do+    poke ((p `plusPtr` 0 :: Ptr Rect2D)) (rect)+    poke ((p `plusPtr` 16 :: Ptr Word32)) (baseArrayLayer)+    poke ((p `plusPtr` 20 :: Ptr Word32)) (layerCount)+    f+  cStructSize = 24+  cStructAlignment = 4+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr Rect2D)) (zero)+    poke ((p `plusPtr` 16 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 20 :: Ptr Word32)) (zero)+    f++instance FromCStruct ClearRect where+  peekCStruct p = do+    rect <- peekCStruct @Rect2D ((p `plusPtr` 0 :: Ptr Rect2D))+    baseArrayLayer <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))+    layerCount <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))+    pure $ ClearRect+             rect baseArrayLayer layerCount++instance Storable ClearRect where+  sizeOf ~_ = 24+  alignment ~_ = 4+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero ClearRect where+  zero = ClearRect+           zero+           zero+           zero+++-- | VkImageSubresourceLayers - Structure specifying an image subresource+-- layers+--+-- == Valid Usage+--+-- -   #VUID-VkImageSubresourceLayers-aspectMask-00167# If @aspectMask@+--     contains+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT', it+--     /must/ not contain either of+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' or+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'+--+-- -   #VUID-VkImageSubresourceLayers-aspectMask-00168# @aspectMask@ /must/+--     not contain+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_METADATA_BIT'+--+-- -   #VUID-VkImageSubresourceLayers-aspectMask-02247# @aspectMask@ /must/+--     not include @VK_IMAGE_ASPECT_MEMORY_PLANE_i_BIT_EXT@ for any index+--     /i/+--+-- -   #VUID-VkImageSubresourceLayers-layerCount-09243# If the+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-maintenance5 maintenance5>+--     feature is not enabled, @layerCount@ /must/ not be+--     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS'+--+-- -   #VUID-VkImageSubresourceLayers-layerCount-01700# If @layerCount@ is+--     not 'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS', it /must/+--     be greater than 0+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-VkImageSubresourceLayers-aspectMask-parameter# @aspectMask@+--     /must/ be a valid combination of+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlagBits' values+--+-- -   #VUID-VkImageSubresourceLayers-aspectMask-requiredbitmask#+--     @aspectMask@ /must/ not be @0@+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'BufferImageCopy',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.BufferImageCopy2',+-- 'Vulkan.Extensions.VK_NV_copy_memory_indirect.CopyMemoryToImageIndirectCommandNV',+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlags', 'ImageBlit',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.ImageBlit2',+-- 'ImageCopy',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.ImageCopy2',+-- 'ImageResolve',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.ImageResolve2',+-- 'Vulkan.Extensions.VK_EXT_host_image_copy.ImageToMemoryCopyEXT',+-- 'Vulkan.Extensions.VK_EXT_host_image_copy.MemoryToImageCopyEXT',+-- 'Vulkan.Extensions.VK_NV_copy_memory_indirect.cmdCopyMemoryToImageIndirectNV'+data ImageSubresourceLayers = ImageSubresourceLayers+  { -- | @aspectMask@ is a combination of+    -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlagBits', selecting+    -- the color, depth and\/or stencil aspects to be copied.+    aspectMask :: ImageAspectFlags+  , -- | @mipLevel@ is the mipmap level to copy+    mipLevel :: Word32+  , -- | @baseArrayLayer@ and @layerCount@ are the starting layer and number of+    -- layers to copy.+    baseArrayLayer :: Word32+  , -- No documentation found for Nested "VkImageSubresourceLayers" "layerCount"+    layerCount :: Word32+  }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (ImageSubresourceLayers)+#endif+deriving instance Show ImageSubresourceLayers++instance ToCStruct ImageSubresourceLayers where+  withCStruct x f = allocaBytes 16 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p ImageSubresourceLayers{..} f = do+    poke ((p `plusPtr` 0 :: Ptr ImageAspectFlags)) (aspectMask)+    poke ((p `plusPtr` 4 :: Ptr Word32)) (mipLevel)+    poke ((p `plusPtr` 8 :: Ptr Word32)) (baseArrayLayer)+    poke ((p `plusPtr` 12 :: Ptr Word32)) (layerCount)+    f+  cStructSize = 16+  cStructAlignment = 4+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr ImageAspectFlags)) (zero)+    poke ((p `plusPtr` 4 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 8 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 12 :: Ptr Word32)) (zero)+    f++instance FromCStruct ImageSubresourceLayers where+  peekCStruct p = do+    aspectMask <- peek @ImageAspectFlags ((p `plusPtr` 0 :: Ptr ImageAspectFlags))+    mipLevel <- peek @Word32 ((p `plusPtr` 4 :: Ptr Word32))+    baseArrayLayer <- peek @Word32 ((p `plusPtr` 8 :: Ptr Word32))+    layerCount <- peek @Word32 ((p `plusPtr` 12 :: Ptr Word32))+    pure $ ImageSubresourceLayers+             aspectMask mipLevel baseArrayLayer layerCount++instance Storable ImageSubresourceLayers where+  sizeOf ~_ = 16+  alignment ~_ = 4+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero ImageSubresourceLayers where+  zero = ImageSubresourceLayers+           zero+           zero+           zero+           zero+++-- | VkBufferCopy - Structure specifying a buffer copy operation+--+-- == Valid Usage+--+-- -   #VUID-VkBufferCopy-size-01988# The @size@ /must/ be greater than @0@+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize', 'cmdCopyBuffer'+data BufferCopy = BufferCopy+  { -- | @srcOffset@ is the starting offset in bytes from the start of+    -- @srcBuffer@.+    srcOffset :: DeviceSize+  , -- | @dstOffset@ is the starting offset in bytes from the start of+    -- @dstBuffer@.+    dstOffset :: DeviceSize+  , -- | @size@ is the number of bytes to copy.+    size :: DeviceSize+  }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (BufferCopy)+#endif+deriving instance Show BufferCopy++instance ToCStruct BufferCopy where+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p BufferCopy{..} f = do+    poke ((p `plusPtr` 0 :: Ptr DeviceSize)) (srcOffset)+    poke ((p `plusPtr` 8 :: Ptr DeviceSize)) (dstOffset)+    poke ((p `plusPtr` 16 :: Ptr DeviceSize)) (size)+    f+  cStructSize = 24+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr DeviceSize)) (zero)+    poke ((p `plusPtr` 8 :: Ptr DeviceSize)) (zero)+    poke ((p `plusPtr` 16 :: Ptr DeviceSize)) (zero)+    f++instance FromCStruct BufferCopy where+  peekCStruct p = do+    srcOffset <- peek @DeviceSize ((p `plusPtr` 0 :: Ptr DeviceSize))+    dstOffset <- peek @DeviceSize ((p `plusPtr` 8 :: Ptr DeviceSize))+    size <- peek @DeviceSize ((p `plusPtr` 16 :: Ptr DeviceSize))+    pure $ BufferCopy+             srcOffset dstOffset size++instance Storable BufferCopy where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero BufferCopy where+  zero = BufferCopy+           zero+           zero+           zero+++-- | VkImageCopy - Structure specifying an image copy operation+--+-- == Valid Usage+--+-- -   #VUID-VkImageCopy-apiVersion-07940# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_sampler_ycbcr_conversion VK_KHR_sampler_ycbcr_conversion>+--     extension is not enabled, and+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceProperties'::@apiVersion@+--     is less than Vulkan 1.1, the @aspectMask@ member of @srcSubresource@+--     and @dstSubresource@ /must/ match+--+-- -   #VUID-VkImageCopy-apiVersion-07941# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance1 VK_KHR_maintenance1>+--     extension is not enabled, and+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceProperties'::@apiVersion@+--     is less than Vulkan 1.1, the @layerCount@ member of @srcSubresource@+--     and @dstSubresource@ /must/ match+--+-- -   #VUID-VkImageCopy-extent-06668# @extent.width@ /must/ not be 0+--+-- -   #VUID-VkImageCopy-extent-06669# @extent.height@ /must/ not be 0+--+-- -   #VUID-VkImageCopy-extent-06670# @extent.depth@ /must/ not be 0+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-VkImageCopy-srcSubresource-parameter# @srcSubresource@ /must/+--     be a valid 'ImageSubresourceLayers' structure+--+-- -   #VUID-VkImageCopy-dstSubresource-parameter# @dstSubresource@ /must/+--     be a valid 'ImageSubresourceLayers' structure+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.FundamentalTypes.Extent3D', 'ImageSubresourceLayers',+-- 'Vulkan.Core10.FundamentalTypes.Offset3D', 'cmdCopyImage'+data ImageCopy = ImageCopy+  { -- | @srcSubresource@ and @dstSubresource@ are 'ImageSubresourceLayers'+    -- structures specifying the image subresources of the images used for the+    -- source and destination image data, respectively.+    srcSubresource :: ImageSubresourceLayers+  , -- | @srcOffset@ and @dstOffset@ select the initial @x@, @y@, and @z@ offsets+    -- in texels of the sub-regions of the source and destination image data.+    srcOffset :: Offset3D+  , -- No documentation found for Nested "VkImageCopy" "dstSubresource"+    dstSubresource :: ImageSubresourceLayers+  , -- No documentation found for Nested "VkImageCopy" "dstOffset"+    dstOffset :: Offset3D+  , -- | @extent@ is the size in texels of the image to copy in @width@, @height@+    -- and @depth@.+    extent :: Extent3D+  }+  deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (ImageCopy)+#endif+deriving instance Show ImageCopy++instance ToCStruct ImageCopy where+  withCStruct x f = allocaBytes 68 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p ImageCopy{..} f = do+    poke ((p `plusPtr` 0 :: Ptr ImageSubresourceLayers)) (srcSubresource)+    poke ((p `plusPtr` 16 :: Ptr Offset3D)) (srcOffset)+    poke ((p `plusPtr` 28 :: Ptr ImageSubresourceLayers)) (dstSubresource)+    poke ((p `plusPtr` 44 :: Ptr Offset3D)) (dstOffset)+    poke ((p `plusPtr` 56 :: Ptr Extent3D)) (extent)+    f+  cStructSize = 68+  cStructAlignment = 4+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr ImageSubresourceLayers)) (zero)+    poke ((p `plusPtr` 16 :: Ptr Offset3D)) (zero)+    poke ((p `plusPtr` 28 :: Ptr ImageSubresourceLayers)) (zero)+    poke ((p `plusPtr` 44 :: Ptr Offset3D)) (zero)+    poke ((p `plusPtr` 56 :: Ptr Extent3D)) (zero)+    f++instance FromCStruct ImageCopy where+  peekCStruct p = do+    srcSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 0 :: Ptr ImageSubresourceLayers))+    srcOffset <- peekCStruct @Offset3D ((p `plusPtr` 16 :: Ptr Offset3D))+    dstSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 28 :: Ptr ImageSubresourceLayers))+    dstOffset <- peekCStruct @Offset3D ((p `plusPtr` 44 :: Ptr Offset3D))+    extent <- peekCStruct @Extent3D ((p `plusPtr` 56 :: Ptr Extent3D))+    pure $ ImageCopy+             srcSubresource srcOffset dstSubresource dstOffset extent++instance Storable ImageCopy where+  sizeOf ~_ = 68+  alignment ~_ = 4+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero ImageCopy where+  zero = ImageCopy+           zero+           zero+           zero+           zero+           zero+++-- | VkImageBlit - Structure specifying an image blit operation+--+-- = Description+--+-- For each element of the @pRegions@ array, a blit operation is performed+-- for the specified source and destination regions.+--+-- == Valid Usage+--+-- -   #VUID-VkImageBlit-aspectMask-00238# The @aspectMask@ member of+--     @srcSubresource@ and @dstSubresource@ /must/ match+--+-- -   #VUID-VkImageBlit-layerCount-08800# If neither of the @layerCount@+--     members of @srcSubresource@ or @dstSubresource@ are+--     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS', the+--     @layerCount@ members of @srcSubresource@ or @dstSubresource@ /must/+--     match+--+-- -   #VUID-VkImageBlit-maintenance5-08799# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance5 maintenance5>+--     feature is not enabled, the @layerCount@ member of @srcSubresource@+--     or @dstSubresource@ /must/ not be+--     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS'+--+-- -   #VUID-VkImageBlit-layerCount-08801# If one of the @layerCount@+--     members of @srcSubresource@ or @dstSubresource@ is+--     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS', the other+--     member /must/ be either+--     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' or equal to the+--     @arrayLayers@ member of the 'Vulkan.Core10.Image.ImageCreateInfo'+--     used to create the image minus @baseArrayLayer@+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-VkImageBlit-srcSubresource-parameter# @srcSubresource@ /must/+--     be a valid 'ImageSubresourceLayers' structure+--+-- -   #VUID-VkImageBlit-dstSubresource-parameter# @dstSubresource@ /must/+--     be a valid 'ImageSubresourceLayers' structure+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'ImageSubresourceLayers', 'Vulkan.Core10.FundamentalTypes.Offset3D',+-- 'cmdBlitImage'+data ImageBlit = ImageBlit+  { -- | @srcSubresource@ is the subresource to blit from.+    srcSubresource :: ImageSubresourceLayers+  , -- | @srcOffsets@ is a pointer to an array of two+    -- 'Vulkan.Core10.FundamentalTypes.Offset3D' structures specifying the+    -- bounds of the source region within @srcSubresource@.+    srcOffsets :: (Offset3D, Offset3D)+  , -- | @dstSubresource@ is the subresource to blit into.+    dstSubresource :: ImageSubresourceLayers+  , -- | @dstOffsets@ is a pointer to an array of two+    -- 'Vulkan.Core10.FundamentalTypes.Offset3D' structures specifying the+    -- bounds of the destination region within @dstSubresource@.+    dstOffsets :: (Offset3D, Offset3D)+  }+  deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (ImageBlit)+#endif+deriving instance Show ImageBlit++instance ToCStruct ImageBlit where+  withCStruct x f = allocaBytes 80 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p ImageBlit{..} f = do+    poke ((p `plusPtr` 0 :: Ptr ImageSubresourceLayers)) (srcSubresource)+    let pSrcOffsets' = lowerArrayPtr ((p `plusPtr` 16 :: Ptr (FixedArray 2 Offset3D)))+    case (srcOffsets) of+      (e0, e1) -> do+        poke (pSrcOffsets' :: Ptr Offset3D) (e0)+        poke (pSrcOffsets' `plusPtr` 12 :: Ptr Offset3D) (e1)+    poke ((p `plusPtr` 40 :: Ptr ImageSubresourceLayers)) (dstSubresource)+    let pDstOffsets' = lowerArrayPtr ((p `plusPtr` 56 :: Ptr (FixedArray 2 Offset3D)))+    case (dstOffsets) of+      (e0, e1) -> do+        poke (pDstOffsets' :: Ptr Offset3D) (e0)+        poke (pDstOffsets' `plusPtr` 12 :: Ptr Offset3D) (e1)+    f+  cStructSize = 80+  cStructAlignment = 4+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr ImageSubresourceLayers)) (zero)+    let pSrcOffsets' = lowerArrayPtr ((p `plusPtr` 16 :: Ptr (FixedArray 2 Offset3D)))+    case ((zero, zero)) of+      (e0, e1) -> do+        poke (pSrcOffsets' :: Ptr Offset3D) (e0)+        poke (pSrcOffsets' `plusPtr` 12 :: Ptr Offset3D) (e1)+    poke ((p `plusPtr` 40 :: Ptr ImageSubresourceLayers)) (zero)+    let pDstOffsets' = lowerArrayPtr ((p `plusPtr` 56 :: Ptr (FixedArray 2 Offset3D)))+    case ((zero, zero)) of+      (e0, e1) -> do+        poke (pDstOffsets' :: Ptr Offset3D) (e0)+        poke (pDstOffsets' `plusPtr` 12 :: Ptr Offset3D) (e1)+    f++instance FromCStruct ImageBlit where+  peekCStruct p = do+    srcSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 0 :: Ptr ImageSubresourceLayers))+    let psrcOffsets = lowerArrayPtr @Offset3D ((p `plusPtr` 16 :: Ptr (FixedArray 2 Offset3D)))+    srcOffsets0 <- peekCStruct @Offset3D ((psrcOffsets `advancePtrBytes` 0 :: Ptr Offset3D))+    srcOffsets1 <- peekCStruct @Offset3D ((psrcOffsets `advancePtrBytes` 12 :: Ptr Offset3D))+    dstSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 40 :: Ptr ImageSubresourceLayers))+    let pdstOffsets = lowerArrayPtr @Offset3D ((p `plusPtr` 56 :: Ptr (FixedArray 2 Offset3D)))+    dstOffsets0 <- peekCStruct @Offset3D ((pdstOffsets `advancePtrBytes` 0 :: Ptr Offset3D))+    dstOffsets1 <- peekCStruct @Offset3D ((pdstOffsets `advancePtrBytes` 12 :: Ptr Offset3D))+    pure $ ImageBlit+             srcSubresource+             ((srcOffsets0, srcOffsets1))+             dstSubresource+             ((dstOffsets0, dstOffsets1))++instance Storable ImageBlit where+  sizeOf ~_ = 80+  alignment ~_ = 4+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero ImageBlit where+  zero = ImageBlit+           zero+           (zero, zero)+           zero+           (zero, zero)+++-- | VkBufferImageCopy - Structure specifying a buffer image copy operation+--+-- == Valid Usage+--+-- -   #VUID-VkBufferImageCopy-bufferRowLength-09101# @bufferRowLength@+--     /must/ be @0@, or greater than or equal to the @width@ member of+--     @imageExtent@+--+-- -   #VUID-VkBufferImageCopy-bufferImageHeight-09102# @bufferImageHeight@+--     /must/ be @0@, or greater than or equal to the @height@ member of+--     @imageExtent@+--+-- -   #VUID-VkBufferImageCopy-aspectMask-09103# The @aspectMask@ member of+--     @imageSubresource@ /must/ only have a single bit set+--+-- -   #VUID-VkBufferImageCopy-imageExtent-06659# @imageExtent.width@+--     /must/ not be 0+--+-- -   #VUID-VkBufferImageCopy-imageExtent-06660# @imageExtent.height@+--     /must/ not be 0+--+-- -   #VUID-VkBufferImageCopy-imageExtent-06661# @imageExtent.depth@+--     /must/ not be 0+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-VkBufferImageCopy-imageSubresource-parameter#+--     @imageSubresource@ /must/ be a valid 'ImageSubresourceLayers'+--     structure+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize',+-- 'Vulkan.Core10.FundamentalTypes.Extent3D', 'ImageSubresourceLayers',+-- 'Vulkan.Core10.FundamentalTypes.Offset3D', 'cmdCopyBufferToImage',+-- 'cmdCopyImageToBuffer'+data BufferImageCopy = BufferImageCopy+  { -- | @bufferOffset@ is the offset in bytes from the start of the buffer+    -- object where the image data is copied from or to.+    bufferOffset :: DeviceSize+  , -- | @bufferRowLength@ and @bufferImageHeight@ specify in texels a subregion+    -- of a larger two- or three-dimensional image in buffer memory, and+    -- control the addressing calculations. If either of these values is zero,+    -- that aspect of the buffer memory is considered to be tightly packed+    -- according to the @imageExtent@.+    bufferRowLength :: Word32+  , -- No documentation found for Nested "VkBufferImageCopy" "bufferImageHeight"+    bufferImageHeight :: Word32+  , -- | @imageSubresource@ is a 'ImageSubresourceLayers' used to specify the+    -- specific image subresources of the image used for the source or+    -- destination image data.+    imageSubresource :: ImageSubresourceLayers+  , -- | @imageOffset@ selects the initial @x@, @y@, @z@ offsets in texels of the+    -- sub-region of the source or destination image data.+    imageOffset :: Offset3D+  , -- | @imageExtent@ is the size in texels of the image to copy in @width@,+    -- @height@ and @depth@.+    imageExtent :: Extent3D+  }+  deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (BufferImageCopy)+#endif+deriving instance Show BufferImageCopy++instance ToCStruct BufferImageCopy where+  withCStruct x f = allocaBytes 56 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p BufferImageCopy{..} f = do+    poke ((p `plusPtr` 0 :: Ptr DeviceSize)) (bufferOffset)+    poke ((p `plusPtr` 8 :: Ptr Word32)) (bufferRowLength)+    poke ((p `plusPtr` 12 :: Ptr Word32)) (bufferImageHeight)+    poke ((p `plusPtr` 16 :: Ptr ImageSubresourceLayers)) (imageSubresource)+    poke ((p `plusPtr` 32 :: Ptr Offset3D)) (imageOffset)+    poke ((p `plusPtr` 44 :: Ptr Extent3D)) (imageExtent)+    f+  cStructSize = 56+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr DeviceSize)) (zero)+    poke ((p `plusPtr` 8 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 12 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 16 :: Ptr ImageSubresourceLayers)) (zero)+    poke ((p `plusPtr` 32 :: Ptr Offset3D)) (zero)+    poke ((p `plusPtr` 44 :: Ptr Extent3D)) (zero)+    f++instance FromCStruct BufferImageCopy where+  peekCStruct p = do+    bufferOffset <- peek @DeviceSize ((p `plusPtr` 0 :: Ptr DeviceSize))+    bufferRowLength <- peek @Word32 ((p `plusPtr` 8 :: Ptr Word32))+    bufferImageHeight <- peek @Word32 ((p `plusPtr` 12 :: Ptr Word32))+    imageSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 16 :: Ptr ImageSubresourceLayers))+    imageOffset <- peekCStruct @Offset3D ((p `plusPtr` 32 :: Ptr Offset3D))+    imageExtent <- peekCStruct @Extent3D ((p `plusPtr` 44 :: Ptr Extent3D))+    pure $ BufferImageCopy+             bufferOffset+             bufferRowLength+             bufferImageHeight+             imageSubresource+             imageOffset+             imageExtent++instance Storable BufferImageCopy where+  sizeOf ~_ = 56+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero BufferImageCopy where+  zero = BufferImageCopy+           zero+           zero+           zero+           zero+           zero+           zero+++-- | VkImageResolve - Structure specifying an image resolve operation+--+-- == Valid Usage+--+-- -   #VUID-VkImageResolve-aspectMask-00266# The @aspectMask@ member of+--     @srcSubresource@ and @dstSubresource@ /must/ only contain+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'+--+-- -   #VUID-VkImageResolve-layerCount-08803# If neither of the+--     @layerCount@ members of @srcSubresource@ or @dstSubresource@ are+--     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS', the+--     @layerCount@ member of @srcSubresource@ and @dstSubresource@ /must/+--     match+--+-- -   #VUID-VkImageResolve-maintenance5-08802# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance5 maintenance5>+--     feature is not enabled, the @layerCount@ member of @srcSubresource@+--     or @dstSubresource@ /must/ not be+--     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS'+--+-- -   #VUID-VkImageResolve-layerCount-08804# If one of the @layerCount@+--     members of @srcSubresource@ or @dstSubresource@ is+--     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS', the other+--     member /must/ be either+--     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' or equal to the+--     @arrayLayers@ member of the 'Vulkan.Core10.Image.ImageCreateInfo'+--     used to create the image minus @baseArrayLayer@+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-VkImageResolve-srcSubresource-parameter# @srcSubresource@+--     /must/ be a valid 'ImageSubresourceLayers' structure+--+-- -   #VUID-VkImageResolve-dstSubresource-parameter# @dstSubresource@+--     /must/ be a valid 'ImageSubresourceLayers' structure+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Core10.FundamentalTypes.Extent3D', 'ImageSubresourceLayers',+-- 'Vulkan.Core10.FundamentalTypes.Offset3D', 'cmdResolveImage'+data ImageResolve = ImageResolve+  { -- | @srcSubresource@ and @dstSubresource@ are 'ImageSubresourceLayers'+    -- structures specifying the image subresources of the images used for the+    -- source and destination image data, respectively. Resolve of+    -- depth\/stencil images is not supported.+    srcSubresource :: ImageSubresourceLayers+  , -- | @srcOffset@ and @dstOffset@ select the initial @x@, @y@, and @z@ offsets+    -- in texels of the sub-regions of the source and destination image data.+    srcOffset :: Offset3D+  , -- No documentation found for Nested "VkImageResolve" "dstSubresource"+    dstSubresource :: ImageSubresourceLayers+  , -- No documentation found for Nested "VkImageResolve" "dstOffset"+    dstOffset :: Offset3D+  , -- | @extent@ is the size in texels of the source image to resolve in+    -- @width@, @height@ and @depth@.+    extent :: Extent3D+  }+  deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (ImageResolve)+#endif+deriving instance Show ImageResolve++instance ToCStruct ImageResolve where+  withCStruct x f = allocaBytes 68 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p ImageResolve{..} f = do+    poke ((p `plusPtr` 0 :: Ptr ImageSubresourceLayers)) (srcSubresource)+    poke ((p `plusPtr` 16 :: Ptr Offset3D)) (srcOffset)+    poke ((p `plusPtr` 28 :: Ptr ImageSubresourceLayers)) (dstSubresource)+    poke ((p `plusPtr` 44 :: Ptr Offset3D)) (dstOffset)+    poke ((p `plusPtr` 56 :: Ptr Extent3D)) (extent)+    f+  cStructSize = 68+  cStructAlignment = 4+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr ImageSubresourceLayers)) (zero)+    poke ((p `plusPtr` 16 :: Ptr Offset3D)) (zero)+    poke ((p `plusPtr` 28 :: Ptr ImageSubresourceLayers)) (zero)+    poke ((p `plusPtr` 44 :: Ptr Offset3D)) (zero)+    poke ((p `plusPtr` 56 :: Ptr Extent3D)) (zero)+    f++instance FromCStruct ImageResolve where+  peekCStruct p = do+    srcSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 0 :: Ptr ImageSubresourceLayers))+    srcOffset <- peekCStruct @Offset3D ((p `plusPtr` 16 :: Ptr Offset3D))+    dstSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 28 :: Ptr ImageSubresourceLayers))+    dstOffset <- peekCStruct @Offset3D ((p `plusPtr` 44 :: Ptr Offset3D))+    extent <- peekCStruct @Extent3D ((p `plusPtr` 56 :: Ptr Extent3D))+    pure $ ImageResolve+             srcSubresource srcOffset dstSubresource dstOffset extent++instance Storable ImageResolve where+  sizeOf ~_ = 68+  alignment ~_ = 4+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero ImageResolve where+  zero = ImageResolve+           zero+           zero+           zero+           zero+           zero+++-- | VkRenderPassBeginInfo - Structure specifying render pass begin+-- information+--+-- = Description+--+-- @renderArea@ is the render area that is affected by the render pass+-- instance. The effects of attachment load, store and multisample resolve+-- operations are restricted to the pixels whose x and y coordinates fall+-- within the render area on all attachments. The render area extends to+-- all layers of @framebuffer@. The application /must/ ensure (using+-- scissor if necessary) that all rendering is contained within the render+-- area. The render area, after any transform specified by+-- 'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM'::@transform@+-- is applied, /must/ be contained within the framebuffer dimensions.+--+-- If+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#vertexpostproc-renderpass-transform render pass transform>+-- is enabled, then @renderArea@ /must/ equal the framebuffer+-- pre-transformed dimensions. After @renderArea@ has been transformed by+-- 'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM'::@transform@,+-- the resulting render area /must/ be equal to the framebuffer dimensions.+--+-- If multiview is enabled in @renderPass@, and+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiview-per-view-render-areas multiviewPerViewRenderAreas>+-- feature is enabled, and there is an instance of+-- 'Vulkan.Extensions.VK_QCOM_multiview_per_view_render_areas.MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM'+-- included in the @pNext@ chain with @perViewRenderAreaCount@ not equal to+-- @0@, then the elements of+-- 'Vulkan.Extensions.VK_QCOM_multiview_per_view_render_areas.MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM'::@pPerViewRenderAreas@+-- override @renderArea@ and define a render area for each view. In this+-- case, @renderArea@ /must/ be set to an area at least as large as the+-- union of all the per-view render areas.+--+-- If the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-subpassShading subpassShading>+-- feature is enabled, then @renderArea@ /must/ equal the framebuffer+-- dimensions.+--+-- Note+--+-- There /may/ be a performance cost for using a render area smaller than+-- the framebuffer, unless it matches the render area granularity for the+-- render pass.+--+-- == Valid Usage+--+-- -   #VUID-VkRenderPassBeginInfo-clearValueCount-00902# @clearValueCount@+--     /must/ be greater than the largest attachment index in @renderPass@+--     specifying a @loadOp@ (or @stencilLoadOp@, if the attachment has a+--     depth\/stencil format) of+--     'Vulkan.Core10.Enums.AttachmentLoadOp.ATTACHMENT_LOAD_OP_CLEAR'+--+-- -   #VUID-VkRenderPassBeginInfo-clearValueCount-04962# If+--     @clearValueCount@ is not @0@, @pClearValues@ /must/ be a valid+--     pointer to an array of @clearValueCount@ 'ClearValue' unions+--+-- -   #VUID-VkRenderPassBeginInfo-renderPass-00904# @renderPass@ /must/ be+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-compatibility compatible>+--     with the @renderPass@ member of the+--     'Vulkan.Core10.Pass.FramebufferCreateInfo' structure specified when+--     creating @framebuffer@+--+-- -   #VUID-VkRenderPassBeginInfo-None-08996# If+--     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'::@deviceRenderAreaCount@+--     is 0, @renderArea.extent.width@ /must/ be greater than 0+--+-- -   #VUID-VkRenderPassBeginInfo-None-08997# If+--     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'::@deviceRenderAreaCount@+--     is 0, @renderArea.extent.height@ /must/ be greater than 0+--+-- -   #VUID-VkRenderPassBeginInfo-pNext-02850# If the @pNext@ chain does+--     not contain+--     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'+--     or its @deviceRenderAreaCount@ member is equal to 0,+--     @renderArea.offset.x@ /must/ be greater than or equal to 0+--+-- -   #VUID-VkRenderPassBeginInfo-pNext-02851# If the @pNext@ chain does+--     not contain+--     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'+--     or its @deviceRenderAreaCount@ member is equal to 0,+--     @renderArea.offset.y@ /must/ be greater than or equal to 0+--+-- -   #VUID-VkRenderPassBeginInfo-pNext-02852# If the @pNext@ chain does+--     not contain+--     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'+--     or its @deviceRenderAreaCount@ member is equal to 0,+--     @renderArea.offset.x@ + @renderArea.extent.width@ /must/ be less+--     than or equal to 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@width@+--     the @framebuffer@ was created with+--+-- -   #VUID-VkRenderPassBeginInfo-pNext-02853# If the @pNext@ chain does+--     not contain+--     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'+--     or its @deviceRenderAreaCount@ member is equal to 0,+--     @renderArea.offset.y@ + @renderArea.extent.height@ /must/ be less+--     than or equal to+--     'Vulkan.Core10.Pass.FramebufferCreateInfo'::@height@ the+--     @framebuffer@ was created with+--+-- -   #VUID-VkRenderPassBeginInfo-pNext-02856# If the @pNext@ chain+--     contains+--     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo',+--     @offset.x@ + @extent.width@ of each element of @pDeviceRenderAreas@+--     /must/ be less than or equal to+--     'Vulkan.Core10.Pass.FramebufferCreateInfo'::@width@ the+--     @framebuffer@ was created with+--+-- -   #VUID-VkRenderPassBeginInfo-pNext-02857# If the @pNext@ chain+--     contains+--     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo',+--     @offset.y@ + @extent.height@ of each element of @pDeviceRenderAreas@+--     /must/ be less than or equal to+--     'Vulkan.Core10.Pass.FramebufferCreateInfo'::@height@ the+--     @framebuffer@ was created with+--+-- -   #VUID-VkRenderPassBeginInfo-framebuffer-03207# If @framebuffer@ was+--     created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@+--     value that did not include+--     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',+--     and the @pNext@ chain includes a+--     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'+--     structure, its @attachmentCount@ /must/ be zero+--+-- -   #VUID-VkRenderPassBeginInfo-framebuffer-03208# If @framebuffer@ was+--     created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@+--     value that included+--     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',+--     the @attachmentCount@ of a+--     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'+--     structure included in the @pNext@ chain /must/ be equal to the value+--     of+--     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'::@attachmentImageInfoCount@+--     used to create @framebuffer@+--+-- -   #VUID-VkRenderPassBeginInfo-framebuffer-02780# If @framebuffer@ was+--     created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@+--     value that included+--     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',+--     each element of the @pAttachments@ member of a+--     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'+--     structure included in the @pNext@ chain /must/ have been created on+--     the same 'Vulkan.Core10.Handles.Device' as @framebuffer@ and+--     @renderPass@+--+-- -   #VUID-VkRenderPassBeginInfo-framebuffer-03209# If @framebuffer@ was+--     created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@+--     value that included+--     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',+--     each element of the @pAttachments@ member of a+--     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'+--     structure included in the @pNext@ chain /must/ be a+--     'Vulkan.Core10.Handles.ImageView' of an image created with a value+--     of 'Vulkan.Core10.Image.ImageCreateInfo'::@flags@ equal to the+--     @flags@ member of the corresponding element of+--     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'::@pAttachmentImageInfos@+--     used to create @framebuffer@+--+-- -   #VUID-VkRenderPassBeginInfo-framebuffer-04627# If @framebuffer@ was+--     created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@+--     value that included+--     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',+--     each element of the @pAttachments@ member of a+--     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'+--     structure included in the @pNext@ chain /must/ be a+--     'Vulkan.Core10.Handles.ImageView' with+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-image-inherited-usage an inherited usage>+--     equal to the @usage@ member of the corresponding element of+--     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'::@pAttachmentImageInfos@+--     used to create @framebuffer@+--+-- -   #VUID-VkRenderPassBeginInfo-framebuffer-03211# If @framebuffer@ was+--     created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@+--     value that included+--     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',+--     each element of the @pAttachments@ member of a+--     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'+--     structure included in the @pNext@ chain /must/ be a+--     'Vulkan.Core10.Handles.ImageView' with a width equal to the @width@+--     member of the corresponding element of+--     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'::@pAttachmentImageInfos@+--     used to create @framebuffer@+--+-- -   #VUID-VkRenderPassBeginInfo-framebuffer-03212# If @framebuffer@ was+--     created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@+--     value that included+--     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',+--     each element of the @pAttachments@ member of a+--     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'+--     structure included in the @pNext@ chain /must/ be a+--     'Vulkan.Core10.Handles.ImageView' with a height equal to the+--     @height@ member of the corresponding element of+--     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'::@pAttachmentImageInfos@+--     used to create @framebuffer@+--+-- -   #VUID-VkRenderPassBeginInfo-framebuffer-03213# If @framebuffer@ was+--     created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@+--     value that included+--     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',+--     each element of the @pAttachments@ member of a+--     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'+--     structure included in the @pNext@ chain /must/ be a+--     'Vulkan.Core10.Handles.ImageView' of an image created with a value+--     of+--     'Vulkan.Core10.ImageView.ImageViewCreateInfo'::@subresourceRange.layerCount@+--     equal to the @layerCount@ member of the corresponding element of+--     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'::@pAttachmentImageInfos@+--     used to create @framebuffer@+--+-- -   #VUID-VkRenderPassBeginInfo-framebuffer-03214# If @framebuffer@ was+--     created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@+--     value that included+--     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',+--     each element of the @pAttachments@ member of a+--     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'+--     structure included in the @pNext@ chain /must/ be a+--     'Vulkan.Core10.Handles.ImageView' of an image created with a value+--     of+--     'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo'::@viewFormatCount@+--     equal to the @viewFormatCount@ member of the corresponding element+--     of+--     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'::@pAttachmentImageInfos@+--     used to create @framebuffer@+--+-- -   #VUID-VkRenderPassBeginInfo-framebuffer-03215# If @framebuffer@ was+--     created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@+--     value that included+--     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',+--     each element of the @pAttachments@ member of a+--     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'+--     structure included in the @pNext@ chain /must/ be a+--     'Vulkan.Core10.Handles.ImageView' of an image created with a set of+--     elements in+--     'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo'::@pViewFormats@+--     equal to the set of elements in the @pViewFormats@ member of the+--     corresponding element of+--     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'::@pAttachmentImageInfos@+--     used to create @framebuffer@+--+-- -   #VUID-VkRenderPassBeginInfo-framebuffer-03216# If @framebuffer@ was+--     created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@+--     value that included+--     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',+--     each element of the @pAttachments@ member of a+--     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'+--     structure included in the @pNext@ chain /must/ be a+--     'Vulkan.Core10.Handles.ImageView' of an image created with a value+--     of 'Vulkan.Core10.ImageView.ImageViewCreateInfo'::@format@ equal to+--     the corresponding value of+--     'Vulkan.Core10.Pass.AttachmentDescription'::@format@ in @renderPass@+--+-- -   #VUID-VkRenderPassBeginInfo-framebuffer-09353# If @framebuffer@ was+--     created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@+--     value that included+--     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',+--     and the+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-nullColorAttachmentWithExternalFormatResolve nullColorAttachmentWithExternalFormatResolve>+--     is 'Vulkan.Core10.FundamentalTypes.FALSE', the format of the color+--     attachment for each subpass that includes an external format image+--     as a resolve attachment /must/ have a format equal to the value of+--     'Vulkan.Extensions.VK_ANDROID_external_format_resolve.AndroidHardwareBufferFormatResolvePropertiesANDROID'::@colorAttachmentFormat@+--     as returned by a call to+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.getAndroidHardwareBufferPropertiesANDROID'+--     for the Android hardware buffer that was used to create the image+--     view use as its resolve attachment+--+-- -   #VUID-VkRenderPassBeginInfo-framebuffer-09354# If @framebuffer@ was+--     created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@+--     value that included+--     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',+--     each element of the @pAttachments@ member of a+--     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'+--     structure included in the @pNext@ chain /must/ be a+--     'Vulkan.Core10.Handles.ImageView' of an image created with a value+--     of+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@+--     equal to+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@+--     in the @pNext@ chain of the corresponding+--     'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.AttachmentDescription2'+--     structure used to create @renderPass@+--+-- -   #VUID-VkRenderPassBeginInfo-framebuffer-09047# If @framebuffer@ was+--     created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@+--     value that included+--     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',+--     each element of the @pAttachments@ member of a+--     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo'+--     structure included in the @pNext@ chain /must/ be a+--     'Vulkan.Core10.Handles.ImageView' of an image created with a value+--     of 'Vulkan.Core10.Image.ImageCreateInfo'::@samples@ equal to the+--     corresponding value of+--     'Vulkan.Core10.Pass.AttachmentDescription'::@samples@ in+--     @renderPass@ , or+--     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' if+--     @renderPass@ was created with+--     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'+--     structure in the @pNext@ chain with+--     @multisampledRenderToSingleSampledEnable@ equal to+--     'Vulkan.Core10.FundamentalTypes.TRUE'+--+-- -   #VUID-VkRenderPassBeginInfo-pNext-02869# If the @pNext@ chain+--     includes+--     '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.+--+-- == 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',+--     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 @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) --
src/Vulkan/Core10/DescriptorSet.hs view
@@ -939,8 +939,9 @@ --     array of @pDescriptorWrites@[i].@descriptorCount@ valid --     'DescriptorImageInfo' structures ----- -   #VUID-vkUpdateDescriptorSets-None-03047# Descriptor bindings updated---     by this command which were created without the+-- -   #VUID-vkUpdateDescriptorSets-None-03047# The @dstSet@ member of each+--     element of @pDescriptorWrites@ or @pDescriptorCopies@ for bindings+--     which were created without the --     'Vulkan.Core12.Enums.DescriptorBindingFlagBits.DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT' --     or --     'Vulkan.Core12.Enums.DescriptorBindingFlagBits.DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT'@@ -1978,11 +1979,11 @@ --     flag set -- -- -   #VUID-VkCopyDescriptorSet-srcSet-04885# If @srcSet@’s layout was---     created with neither---     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT'---     nor+--     created without either the --     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT'---     flags set, then @dstSet@’s layout /must/ have been created without+--     flag or the+--     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT'+--     flag set, then @dstSet@’s layout /must/ have been created without --     the --     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT' --     flag set@@ -1996,13 +1997,13 @@ --     flag set -- -- -   #VUID-VkCopyDescriptorSet-srcSet-04887# If the descriptor pool from---     which @srcSet@ was allocated was created with neither---     'Vulkan.Core10.Enums.DescriptorPoolCreateFlagBits.DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT'---     nor+--     which @srcSet@ was allocated was created without either the --     'Vulkan.Core10.Enums.DescriptorPoolCreateFlagBits.DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT'---     flags set, then the descriptor pool from which @dstSet@ was---     allocated /must/ have been created without the+--     flag or the --     'Vulkan.Core10.Enums.DescriptorPoolCreateFlagBits.DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT'+--     flag set, then the descriptor pool from which @dstSet@ was allocated+--     /must/ have been created without the+--     'Vulkan.Core10.Enums.DescriptorPoolCreateFlagBits.DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT' --     flag set -- -- -   #VUID-VkCopyDescriptorSet-dstBinding-02753# If the descriptor type@@ -2208,7 +2209,7 @@ --     and 'DescriptorSetLayoutCreateInfo'::@flags@ does not contain --     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT' --     then @descriptorCount@ /must/ be less than or equal to---     'Vulkan.Extensions.VK_EXT_inline_uniform_block.PhysicalDeviceInlineUniformBlockPropertiesEXT'::@maxInlineUniformBlockSize@+--     'Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block.PhysicalDeviceInlineUniformBlockProperties'::@maxInlineUniformBlockSize@ -- -- -   #VUID-VkDescriptorSetLayoutBinding-flags-08005# If --     'DescriptorSetLayoutCreateInfo'::@flags@ contains@@ -2910,7 +2911,7 @@ -- -- -   #VUID-VkDescriptorSetAllocateInfo-apiVersion-07895# If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance1 VK_KHR_maintenance1>---     extension is not enabled,+--     extension is not enabled and --     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceProperties'::@apiVersion@ --     is less than Vulkan 1.1, @descriptorSetCount@ /must/ not be greater --     than the number of sets that are currently available for allocation@@ -2918,7 +2919,7 @@ -- -- -   #VUID-VkDescriptorSetAllocateInfo-apiVersion-07896# If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance1 VK_KHR_maintenance1>---     extension is not enabled,+--     extension is not enabled and --     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceProperties'::@apiVersion@ --     is less than Vulkan 1.1, @descriptorPool@ /must/ have enough free --     descriptor capacity remaining to allocate the descriptor sets of the@@ -2945,10 +2946,10 @@ --     is included in the @pNext@ chain, and --     'Vulkan.Core12.Promoted_From_VK_EXT_descriptor_indexing.DescriptorSetVariableDescriptorCountAllocateInfo'::@descriptorSetCount@ --     is not zero, then---     slink::VkDescriptorSetVariableDescriptorCountAllocateInfo::pDescriptorCounts[i]+--     'Vulkan.Core12.Promoted_From_VK_EXT_descriptor_indexing.DescriptorSetVariableDescriptorCountAllocateInfo'::pDescriptorCounts[i] --     /must/ be less than or equal to---     slink::VkDescriptorSetLayoutBinding::descriptorCount for the---     corresponding binding used to create @pSetLayouts@[i]+--     'DescriptorSetLayoutBinding'::descriptorCount for the corresponding+--     binding used to create @pSetLayouts@[i] -- -- -   #VUID-VkDescriptorSetAllocateInfo-pSetLayouts-04610# If any element --     of @pSetLayouts@ was created with the
src/Vulkan/Core10/Device.hs view
@@ -78,6 +78,7 @@ 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)+import {-# SOURCE #-} Vulkan.Extensions.VK_ARM_scheduling_controls (DeviceQueueShaderCoreControlCreateInfoARM) import Vulkan.Core10.Handles (Device_T) import Vulkan.CStruct.Extends (Extends) import Vulkan.CStruct.Extends (Extendss)@@ -113,6 +114,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_NV_coverage_reduction_mode (PhysicalDeviceCoverageReductionModeFeaturesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_filter_cubic_clamp (PhysicalDeviceCubicClampFeaturesQCOM) import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_filter_cubic_weights (PhysicalDeviceCubicWeightsFeaturesQCOM)+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_cuda_kernel_launch (PhysicalDeviceCudaKernelLaunchFeaturesNV) 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)@@ -214,6 +216,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_robustness2 (PhysicalDeviceRobustness2FeaturesEXT) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion (PhysicalDeviceSamplerYcbcrConversionFeatures) 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_EXT_shader_atomic_float2 (PhysicalDeviceShaderAtomicFloat2FeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_shader_atomic_float (PhysicalDeviceShaderAtomicFloatFeaturesEXT)@@ -523,14 +526,25 @@ --     includes the 'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_PROTECTED_BIT' --     capability --+-- -   #VUID-VkDeviceQueueCreateInfo-pNext-09398# If the @pNext@ chain+--     includes a+--     'Vulkan.Extensions.VK_ARM_scheduling_controls.DeviceQueueShaderCoreControlCreateInfoARM'+--     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'.+-- -- == Valid Usage (Implicit) -- -- -   #VUID-VkDeviceQueueCreateInfo-sType-sType# @sType@ /must/ be --     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO' ----- -   #VUID-VkDeviceQueueCreateInfo-pNext-pNext# @pNext@ /must/ be @NULL@---     or a pointer to a valid instance of+-- -   #VUID-VkDeviceQueueCreateInfo-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_global_priority.DeviceQueueGlobalPriorityCreateInfoKHR'+--     or+--     'Vulkan.Extensions.VK_ARM_scheduling_controls.DeviceQueueShaderCoreControlCreateInfoARM' -- -- -   #VUID-VkDeviceQueueCreateInfo-sType-unique# The @sType@ value of --     each struct in the @pNext@ chain /must/ be unique@@ -583,6 +597,7 @@   getNext DeviceQueueCreateInfo{..} = next   extends :: forall e b proxy. Typeable e => proxy e -> (Extends DeviceQueueCreateInfo e => b) -> Maybe b   extends _ f+    | Just Refl <- eqT @e @DeviceQueueShaderCoreControlCreateInfoARM = Just f     | Just Refl <- eqT @e @DeviceQueueGlobalPriorityCreateInfoKHR = Just f     | otherwise = Nothing @@ -852,6 +867,21 @@ --     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@.+--+-- -   #VUID-VkDeviceCreateInfo-pNext-09397# If the @pNext@ chain includes+--     a+--     'Vulkan.Extensions.VK_ARM_scheduling_controls.DeviceQueueShaderCoreControlCreateInfoARM'+--     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'.+-- -- == Valid Usage (Implicit) -- -- -   #VUID-VkDeviceCreateInfo-sType-sType# @sType@ /must/ be@@ -865,6 +895,7 @@ --     'Vulkan.Core11.Promoted_From_VK_KHR_device_group_creation.DeviceGroupDeviceCreateInfo', --     'Vulkan.Extensions.VK_AMD_memory_overallocation_behavior.DeviceMemoryOverallocationCreateInfoAMD', --     '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', --     'Vulkan.Extensions.VK_EXT_4444_formats.PhysicalDevice4444FormatsFeaturesEXT', --     'Vulkan.Core12.Promoted_From_VK_KHR_8bit_storage.PhysicalDevice8BitStorageFeatures',@@ -890,6 +921,7 @@ --     '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_EXT_custom_border_color.PhysicalDeviceCustomBorderColorFeaturesEXT', --     'Vulkan.Extensions.VK_NV_dedicated_allocation_image_aliasing.PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV', --     'Vulkan.Extensions.VK_EXT_depth_bias_control.PhysicalDeviceDepthBiasControlFeaturesEXT',@@ -990,6 +1022,7 @@ --     'Vulkan.Extensions.VK_EXT_robustness2.PhysicalDeviceRobustness2FeaturesEXT', --     '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.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',@@ -1117,6 +1150,9 @@   getNext DeviceCreateInfo{..} = next   extends :: forall e b proxy. Typeable e => proxy e -> (Extends DeviceCreateInfo e => b) -> Maybe b   extends _ f+    | Just Refl <- eqT @e @PhysicalDeviceSchedulingControlsFeaturesARM = Just f+    | Just Refl <- eqT @e @DeviceQueueShaderCoreControlCreateInfoARM = Just f+    | Just Refl <- eqT @e @PhysicalDeviceCudaKernelLaunchFeaturesNV = Just f     | Just Refl <- eqT @e @PhysicalDeviceExternalFormatResolveFeaturesANDROID = Just f     | Just Refl <- eqT @e @PhysicalDeviceDescriptorPoolOverallocationFeaturesNV = Just f     | Just Refl <- eqT @e @PhysicalDeviceImageProcessing2FeaturesQCOM = Just f
src/Vulkan/Core10/DeviceInitialization.hs view
@@ -1545,7 +1545,7 @@ --     bit set, the list of enabled extensions in @ppEnabledExtensionNames@ --     /must/ contain @VK_KHR_portability_enumeration@ ----- -   #VUID-VkInstanceCreateInfo-pNext# If the @pNext@ chain of+-- -   #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
src/Vulkan/Core10/Enums/ObjectType.hs view
@@ -30,6 +30,8 @@                                                   , OBJECT_TYPE_OPTICAL_FLOW_SESSION_NV                                                   , OBJECT_TYPE_MICROMAP_EXT                                                   , OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA+                                                  , OBJECT_TYPE_CUDA_FUNCTION_NV+                                                  , OBJECT_TYPE_CUDA_MODULE_NV                                                   , OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV                                                   , OBJECT_TYPE_DEFERRED_OPERATION_KHR                                                   , OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL@@ -268,6 +270,12 @@ -- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA" pattern OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA = ObjectType 1000366000 +-- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_CUDA_FUNCTION_NV"+pattern OBJECT_TYPE_CUDA_FUNCTION_NV = ObjectType 1000307001++-- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_CUDA_MODULE_NV"+pattern OBJECT_TYPE_CUDA_MODULE_NV = ObjectType 1000307000+ -- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV" pattern OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV = ObjectType 1000277000 @@ -350,6 +358,8 @@   , OBJECT_TYPE_OPTICAL_FLOW_SESSION_NV   , OBJECT_TYPE_MICROMAP_EXT   , OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA+  , OBJECT_TYPE_CUDA_FUNCTION_NV+  , OBJECT_TYPE_CUDA_MODULE_NV   , OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV   , OBJECT_TYPE_DEFERRED_OPERATION_KHR   , OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL@@ -417,6 +427,8 @@     ( OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA     , "BUFFER_COLLECTION_FUCHSIA"     )+  , (OBJECT_TYPE_CUDA_FUNCTION_NV, "CUDA_FUNCTION_NV")+  , (OBJECT_TYPE_CUDA_MODULE_NV, "CUDA_MODULE_NV")   ,     ( OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV     , "INDIRECT_COMMANDS_LAYOUT_NV"
src/Vulkan/Core10/Enums/StructureType.hs view
@@ -159,6 +159,9 @@                                                         , 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_CORE_PROPERTIES_ARM                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT                                                         , STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT@@ -284,6 +287,11 @@                                                         , 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@@ -900,6 +908,9 @@ -- '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',@@ -956,6 +967,7 @@ -- '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',@@ -1166,6 +1178,8 @@ -- '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',@@ -1333,6 +1347,8 @@ -- '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',@@ -2128,6 +2144,15 @@ -- 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_CORE_PROPERTIES_ARM" pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_ARM = StructureType 1000415000 @@ -2503,6 +2528,21 @@ -- 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 @@ -4166,6 +4206,9 @@   , 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_CORE_PROPERTIES_ARM   , STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT   , STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT@@ -4291,6 +4334,11 @@   , 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@@ -5428,6 +5476,18 @@     , "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_CORE_PROPERTIES_ARM     , "PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_ARM"     )@@ -5926,6 +5986,26 @@   ,     ( 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
src/Vulkan/Core10/FundamentalTypes.hs view
@@ -469,6 +469,7 @@ -- '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_EXT_custom_border_color.PhysicalDeviceCustomBorderColorFeaturesEXT', -- 'Vulkan.Extensions.VK_NV_dedicated_allocation_image_aliasing.PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV', -- 'Vulkan.Extensions.VK_EXT_depth_bias_control.PhysicalDeviceDepthBiasControlFeaturesEXT',@@ -594,6 +595,7 @@ -- '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.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',
src/Vulkan/Core10/Handles.hs view
@@ -263,6 +263,8 @@ -- 'Vulkan.Core10.Pipeline.createComputePipelines', -- 'Vulkan.Extensions.VK_NVX_binary_import.createCuFunctionNVX', -- 'Vulkan.Extensions.VK_NVX_binary_import.createCuModuleNVX',+-- 'Vulkan.Extensions.VK_NV_cuda_kernel_launch.createCudaFunctionNV',+-- 'Vulkan.Extensions.VK_NV_cuda_kernel_launch.createCudaModuleNV', -- 'Vulkan.Extensions.VK_KHR_deferred_host_operations.createDeferredOperationKHR', -- 'Vulkan.Core10.DescriptorSet.createDescriptorPool', -- 'Vulkan.Core10.DescriptorSet.createDescriptorSetLayout',@@ -310,6 +312,8 @@ -- 'Vulkan.Core10.CommandPool.destroyCommandPool', -- 'Vulkan.Extensions.VK_NVX_binary_import.destroyCuFunctionNVX', -- 'Vulkan.Extensions.VK_NVX_binary_import.destroyCuModuleNVX',+-- 'Vulkan.Extensions.VK_NV_cuda_kernel_launch.destroyCudaFunctionNV',+-- 'Vulkan.Extensions.VK_NV_cuda_kernel_launch.destroyCudaModuleNV', -- 'Vulkan.Extensions.VK_KHR_deferred_host_operations.destroyDeferredOperationKHR', -- 'Vulkan.Core10.DescriptorSet.destroyDescriptorPool', -- 'Vulkan.Core10.DescriptorSet.destroyDescriptorSetLayout',@@ -364,6 +368,7 @@ -- 'Vulkan.Extensions.VK_KHR_buffer_device_address.getBufferOpaqueCaptureAddressKHR', -- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.getBufferOpaqueCaptureDescriptorDataEXT', -- 'Vulkan.Extensions.VK_EXT_calibrated_timestamps.getCalibratedTimestampsEXT',+-- 'Vulkan.Extensions.VK_NV_cuda_kernel_launch.getCudaModuleCacheNV', -- 'Vulkan.Extensions.VK_KHR_deferred_host_operations.getDeferredOperationMaxConcurrencyKHR', -- 'Vulkan.Extensions.VK_KHR_deferred_host_operations.getDeferredOperationResultKHR', -- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.getDescriptorEXT',@@ -638,6 +643,7 @@ -- 'Vulkan.Extensions.VK_EXT_opacity_micromap.cmdCopyMicromapToMemoryEXT', -- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyQueryPoolResults', -- 'Vulkan.Extensions.VK_NVX_binary_import.cmdCuLaunchKernelNVX',+-- 'Vulkan.Extensions.VK_NV_cuda_kernel_launch.cmdCudaLaunchKernelNV', -- 'Vulkan.Extensions.VK_EXT_debug_marker.cmdDebugMarkerBeginEXT', -- 'Vulkan.Extensions.VK_EXT_debug_marker.cmdDebugMarkerEndEXT', -- 'Vulkan.Extensions.VK_EXT_debug_marker.cmdDebugMarkerInsertEXT',
src/Vulkan/Core10/Image.hs view
@@ -965,6 +965,14 @@ --     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT', --     @imageType@ /must/ be 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D' --+-- -   #VUID-VkImageCreateInfo-flags-09403# If @flags@ contains+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT',+--     @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-flags-07755# If @flags@ contains --     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT', --     @imageType@ /must/ be 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D'
src/Vulkan/Core10/Pass.hs view
@@ -2411,16 +2411,11 @@ --     attachment by @renderPass@ /must/ have a @layerCount@ greater than --     the index of the most significant bit set in any of those view masks ----- -   #VUID-VkFramebufferCreateInfo-renderPass-02746# If @renderPass@ was---     specified with non-zero view masks, each element of @pAttachments@---     that is referenced by @fragmentDensityMapAttachment@ /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-renderPass-02747# If @renderPass@ was---     specified with all view masks equal to zero, each element of+-- -   #VUID-VkFramebufferCreateInfo-renderPass-02746# Each element of --     @pAttachments@ that is referenced by @fragmentDensityMapAttachment@---     /must/ have a @layerCount@ equal to @1@+--     /must/ have a @layerCount@ equal to @1@ or if @renderPass@ was+--     specified with non-zero view masks, greater than the index of the+--     most significant bit set in any of those view masks -- -- -   #VUID-VkFramebufferCreateInfo-pAttachments-02555# If @flags@ does --     not include
src/Vulkan/Core10/Pipeline.hs view
@@ -5429,15 +5429,6 @@ --     and if @pResolveAttachments@ is not @NULL@, then each resolve --     attachment /must/ be 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' ----- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06575# If the pipeline---     requires---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>,---     or---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>,---     @renderPass@ /must/ be 'Vulkan.Core10.APIConstants.NULL_HANDLE' or a---     valid render pass object--- -- -   #VUID-VkGraphicsPipelineCreateInfo-dynamicRendering-06576# If the --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-dynamicRendering dynamicRendering> --     feature is not enabled and the pipeline requires@@ -7087,7 +7078,7 @@ --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>, --     @renderPass@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', --     @subpass@ includes an external format resolve attachment, and---     @rasterizationSamples@ is not dynamic,,+--     @rasterizationSamples@ is not dynamic, --     'PipelineMultisampleStateCreateInfo'::@rasterizationSamples@ /must/ --     be 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' --
src/Vulkan/Core10/PipelineLayout.hs view
@@ -369,10 +369,10 @@ --     bit set with a @descriptorType@ of --     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER', --     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLED_IMAGE',---     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER', --     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM',+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM', --     and---     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM'+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER', --     accessible to any given shader stage across all elements of --     @pSetLayouts@ /must/ be less than or equal to --     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxPerStageDescriptorSampledImages@@@ -400,10 +400,10 @@ -- -   #VUID-VkPipelineLayoutCreateInfo-descriptorType-02214# The total --     number of bindings 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+--     bit set and with a @descriptorType@ of --     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK' --     accessible to any given shader stage across all elements of---     @pSetLayouts@ /must/ be less than or equal to+--     @pSetLayouts@, /must/ be less than or equal to --     'Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block.PhysicalDeviceInlineUniformBlockProperties'::@maxPerStageDescriptorInlineUniformBlocks@ -- -- -   #VUID-VkPipelineLayoutCreateInfo-descriptorType-03022# The total
src/Vulkan/Core10/Query.hs view
@@ -395,6 +395,9 @@ -- -- == Valid Usage --+-- -   #VUID-vkGetQueryPoolResults-None-09401# All queries used by the+--     command /must/ not be uninitialized+-- -- -   #VUID-vkGetQueryPoolResults-firstQuery-00813# @firstQuery@ /must/ be --     less than the number of queries in @queryPool@ --
src/Vulkan/Core11/Promoted_From_VK_KHR_device_group.hs view
@@ -360,11 +360,10 @@ --     <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'+--     a result of this command /must/ not have a+--     'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'::@reductionMode@+--     equal to+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM' -- -- -   #VUID-vkCmdDispatchBase-reductionMode-09213# Any --     'Vulkan.Core10.Handles.ImageView' being sampled with a
src/Vulkan/Core11/Promoted_From_VK_KHR_get_physical_device_properties2.hs view
@@ -128,6 +128,8 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_NV_coverage_reduction_mode (PhysicalDeviceCoverageReductionModeFeaturesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_filter_cubic_clamp (PhysicalDeviceCubicClampFeaturesQCOM) import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_filter_cubic_weights (PhysicalDeviceCubicWeightsFeaturesQCOM)+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_cuda_kernel_launch (PhysicalDeviceCudaKernelLaunchFeaturesNV)+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_cuda_kernel_launch (PhysicalDeviceCudaKernelLaunchPropertiesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_custom_border_color (PhysicalDeviceCustomBorderColorFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_custom_border_color (PhysicalDeviceCustomBorderColorPropertiesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_dedicated_allocation_image_aliasing (PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV)@@ -289,6 +291,8 @@ import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax (PhysicalDeviceSamplerFilterMinmaxProperties) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion (PhysicalDeviceSamplerYcbcrConversionFeatures) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_EXT_scalar_block_layout (PhysicalDeviceScalarBlockLayoutFeatures)+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_EXT_shader_atomic_float2 (PhysicalDeviceShaderAtomicFloat2FeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_shader_atomic_float (PhysicalDeviceShaderAtomicFloatFeaturesEXT)@@ -896,6 +900,8 @@   getNext PhysicalDeviceFeatures2{..} = next   extends :: forall e b proxy. Typeable e => proxy e -> (Extends PhysicalDeviceFeatures2 e => b) -> Maybe b   extends _ f+    | Just Refl <- eqT @e @PhysicalDeviceSchedulingControlsFeaturesARM = Just f+    | Just Refl <- eqT @e @PhysicalDeviceCudaKernelLaunchFeaturesNV = Just f     | Just Refl <- eqT @e @PhysicalDeviceExternalFormatResolveFeaturesANDROID = Just f     | Just Refl <- eqT @e @PhysicalDeviceDescriptorPoolOverallocationFeaturesNV = Just f     | Just Refl <- eqT @e @PhysicalDeviceImageProcessing2FeaturesQCOM = Just f@@ -1124,6 +1130,7 @@ --     'Vulkan.Extensions.VK_KHR_cooperative_matrix.PhysicalDeviceCooperativeMatrixPropertiesKHR', --     'Vulkan.Extensions.VK_NV_cooperative_matrix.PhysicalDeviceCooperativeMatrixPropertiesNV', --     'Vulkan.Extensions.VK_NV_copy_memory_indirect.PhysicalDeviceCopyMemoryIndirectPropertiesNV',+--     'Vulkan.Extensions.VK_NV_cuda_kernel_launch.PhysicalDeviceCudaKernelLaunchPropertiesNV', --     'Vulkan.Extensions.VK_EXT_custom_border_color.PhysicalDeviceCustomBorderColorPropertiesEXT', --     'Vulkan.Core12.Promoted_From_VK_KHR_depth_stencil_resolve.PhysicalDeviceDepthStencilResolveProperties', --     'Vulkan.Extensions.VK_EXT_descriptor_buffer.PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT',@@ -1179,6 +1186,7 @@ --     'Vulkan.Extensions.VK_EXT_robustness2.PhysicalDeviceRobustness2PropertiesEXT', --     'Vulkan.Extensions.VK_EXT_sample_locations.PhysicalDeviceSampleLocationsPropertiesEXT', --     'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.PhysicalDeviceSamplerFilterMinmaxProperties',+--     'Vulkan.Extensions.VK_ARM_scheduling_controls.PhysicalDeviceSchedulingControlsPropertiesARM', --     'Vulkan.Extensions.VK_ARM_shader_core_builtins.PhysicalDeviceShaderCoreBuiltinsPropertiesARM', --     'Vulkan.Extensions.VK_AMD_shader_core_properties2.PhysicalDeviceShaderCoreProperties2AMD', --     'Vulkan.Extensions.VK_AMD_shader_core_properties.PhysicalDeviceShaderCorePropertiesAMD',@@ -1233,6 +1241,8 @@   getNext PhysicalDeviceProperties2{..} = next   extends :: forall e b proxy. Typeable e => proxy e -> (Extends PhysicalDeviceProperties2 e => b) -> Maybe b   extends _ f+    | Just Refl <- eqT @e @PhysicalDeviceSchedulingControlsPropertiesARM = Just f+    | Just Refl <- eqT @e @PhysicalDeviceCudaKernelLaunchPropertiesNV = Just f     | Just Refl <- eqT @e @PhysicalDeviceExternalFormatResolvePropertiesANDROID = Just f     | Just Refl <- eqT @e @PhysicalDeviceLayeredDriverPropertiesMSFT = Just f     | Just Refl <- eqT @e @PhysicalDeviceImageProcessing2PropertiesQCOM = Just f
src/Vulkan/Core12/Promoted_From_VK_KHR_create_renderpass2.hs view
@@ -905,7 +905,7 @@ --     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_UNDEFINED' -- -- -   #VUID-VkAttachmentDescription2-pNext-06705# If the @pNext@ chain---     does includes a+--     includes a --     'Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts.AttachmentDescriptionStencilLayout' --     structure, @format@ includes a stencil component, and --     @stencilLoadOp@ is
src/Vulkan/Core12/Promoted_From_VK_KHR_draw_indirect_count.hs view
@@ -135,11 +135,10 @@ --     <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'+--     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@@ -741,6 +740,9 @@ -- -- -   #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',@@ -749,9 +751,10 @@ --     command -- -- -   #VUID-vkCmdDrawIndirectCount-None-08618# If a shader object is bound---     to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'---     stage, and the most recent call to+--     to any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current 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'@@ -763,8 +766,12 @@ --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT' --     or --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'---     stage, 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/---     have been called in the current command buffer prior to this drawing+--     stage, and the most recent 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@@ -854,6 +861,9 @@ -- -- -   #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',@@ -872,6 +882,9 @@ -- -- -   #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',@@ -890,6 +903,9 @@ -- -- -   #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',@@ -921,12 +937,12 @@ -- -- -   #VUID-vkCmdDrawIndirectCount-None-08626# If a shader object is bound --     to any graphics stage, and the most recent call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'---     in the current command buffer set @sampleLocationsEnable@ to---     'Vulkan.Core10.FundamentalTypes.TRUE', and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     'Vulkan.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@@ -1163,16 +1179,22 @@ --     the last call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' ----- -   #VUID-vkCmdDrawIndirectCount-None-09232# If a shader object is bound---     to any graphics stage, and the @VK_NV_clip_space_w_scaling@---     extension is enabled on the device, then+-- -   #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+--     /must/ have been called in the current command buffer prior to this --     drawing command ----- -   #VUID-vkCmdDrawIndirectCount-None-08636# If a shader object is bound---     to any graphics stage, and the @VK_NV_clip_space_w_scaling@---     extension is enabled on the device, then the @viewportCount@+-- -   #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@@ -1205,33 +1227,40 @@ -- -- -   #VUID-vkCmdDrawIndirectCount-shadingRateImage-09233# If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>---     feature is enabled, and the most recent call to+--     feature is enabled, and a shader object is bound to any graphics+--     stage, and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set rasterizerDiscardEnable to+--     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+--     /must/ have been called in the current command buffer prior to this --     drawing command ----- -   #VUID-vkCmdDrawIndirectCount-shadingRateImage-09234# If a shader---     object is bound to any graphics stage, and the+-- -   #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 on the device, and the most recent call to+--     feature is enabled, and a shader object is bound to any graphics+--     stage, and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set rasterizerDiscardEnable to+--     in 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+--     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+--     /must/ have been called in the current command buffer prior to this --     drawing command ----- -   #VUID-vkCmdDrawIndirectCount-None-08637# If a shader object is bound---     to any graphics stage, and the+-- -   #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 on the device, then the @viewportCount@ parameter---     in the last call to+--     feature is enabled, and a shader object is bound to any graphics+--     stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in 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@@ -1279,16 +1308,18 @@ --     /must/ have been called in the current command buffer prior to this --     drawing command ----- -   #VUID-vkCmdDrawIndirectCount-exclusiveScissor-09235# If a shader---     object is bound to any graphics stage, and the+-- -   #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, then+--     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+--     /must/ have been called in the current command buffer prior to this --     drawing command ----- -   #VUID-vkCmdDrawIndirectCount-None-08638# If a shader object is bound---     to any graphics stage, and the most recent call to+-- -   #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',@@ -1340,12 +1371,12 @@ -- -   #VUID-vkCmdDrawIndirectCount-None-08641# If a shader object is bound --     to the --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'---     stage, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>---     feature is enabled on the device, and the most recent call to+--     stage, and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     '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@@ -1388,7 +1419,9 @@ --     'Vulkan.Core10.FundamentalTypes.FALSE' -- -- -   #VUID-vkCmdDrawIndirectCount-None-08643# If a shader object is bound---     to any graphics stage, and the most recent call to+--     to the+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'+--     stage, and the most recent call 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@@ -1749,7 +1782,10 @@ --     object is bound to any graphics stage, and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     '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@@ -2253,7 +2289,9 @@ --     drawing command -- -- -   #VUID-vkCmdDrawIndirectCount-None-08658# If a shader object is bound---     to any graphics stage, and the most recent call to+--     to the+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'+--     stage, and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     in the current command buffer set @rasterizerDiscardEnable@ to --     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to@@ -2384,6 +2422,20 @@ --     /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'@@ -2396,7 +2448,10 @@ --     @VK_EXT_provoking_vertex@ extension is enabled, and a shader object --     is bound to the --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'---     stage, then+--     stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_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@@ -2412,6 +2467,9 @@ -- -   #VUID-vkCmdDrawIndirectCount-None-08666# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader --     object is bound to any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in 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@@ -2421,7 +2479,12 @@ -- -- -   #VUID-vkCmdDrawIndirectCount-None-08667# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader---     object is bound to the vertex stage, and the most recent call to+--     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@@ -2431,8 +2494,14 @@ -- -- -   #VUID-vkCmdDrawIndirectCount-None-08668# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader---     object that outputs line primitives is bound to the tessellation---     evaluation or geometry stage, then+--     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@@ -2448,6 +2517,9 @@ -- -   #VUID-vkCmdDrawIndirectCount-None-08669# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader --     object is bound to any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in 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@@ -2457,7 +2529,12 @@ -- -- -   #VUID-vkCmdDrawIndirectCount-None-08670# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader---     object is bound to the vertex stage, and the most recent call to+--     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@@ -2467,8 +2544,14 @@ -- -- -   #VUID-vkCmdDrawIndirectCount-None-08671# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader---     object that outputs line primitives is bound to the tessellation---     evaluation or geometry stage, then+--     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@@ -2484,6 +2567,9 @@ -- -   #VUID-vkCmdDrawIndirectCount-None-08672# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader --     object is bound to any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in 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@@ -2570,6 +2656,9 @@ --     shader object is bound to the --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' --     stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in 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@@ -2657,7 +2746,7 @@ --     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+--     /must/ have been called in the current command buffer prior to this --     drawing command -- -- -   #VUID-vkCmdDrawIndirectCount-None-08681# If the@@ -2788,6 +2877,21 @@ --     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'@@ -2800,6 +2904,21 @@ --     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'@@ -2812,6 +2931,21 @@ --     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'@@ -2872,8 +3006,10 @@ --     to --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' ----- -   #VUID-vkCmdDrawIndirectCount-sampleLocationsEnable-07484# If the---     bound graphics pipeline was created with the+-- -   #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@@ -2883,8 +3019,10 @@ --     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT' --     bit set ----- -   #VUID-vkCmdDrawIndirectCount-sampleLocationsEnable-07485# If the---     bound graphics pipeline state was created with the+-- -   #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'@@ -2900,8 +3038,10 @@ --     'Vulkan.Extensions.VK_EXT_sample_locations.getPhysicalDeviceMultisamplePropertiesEXT' --     with a @samples@ parameter equaling @rasterizationSamples@ ----- -   #VUID-vkCmdDrawIndirectCount-sampleLocationsEnable-07486# If the---     bound graphics pipeline state was created with the+-- -   #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'@@ -2917,8 +3057,10 @@ --     'Vulkan.Extensions.VK_EXT_sample_locations.getPhysicalDeviceMultisamplePropertiesEXT' --     with a @samples@ parameter equaling @rasterizationSamples@ ----- -   #VUID-vkCmdDrawIndirectCount-sampleLocationsEnable-07487# If the---     bound graphics pipeline state was created with the+-- -   #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@@ -2981,9 +3123,10 @@ --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' -- -- -   #VUID-vkCmdDrawIndirectCount-coverageModulationTableEnable-07488# If---     the bound graphics pipeline state was created with the+--     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+--     state enabled, and the last call to --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV' --     set @coverageModulationTableEnable@ to --     'Vulkan.Core10.FundamentalTypes.TRUE', then the@@ -3018,6 +3161,29 @@ --     '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@@ -3054,6 +3220,15 @@ --     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@@@ -3309,15 +3484,15 @@ --     and a fragment shader is bound, it /must/ not declare the --     @DepthReplacing@ or @StencilRefReplacingEXT@ execution modes ----- -   #VUID-vkCmdDrawIndirectCount-None-08880# If a shader object is bound---     to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'---     stage and the+-- -   #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 the most recent call to+--     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'+--     '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@@ -3388,8 +3563,10 @@ --     within the corresponding vertex buffer binding, as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input ???> ----- -   #VUID-vkCmdDrawIndirectCount-None-07842# If the bound graphics---     pipeline state was created with the+-- -   #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'@@ -3432,111 +3609,94 @@ --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT' --     /must/ not be @NULL@ ----- -   #VUID-vkCmdDrawIndirectCount-None-08881# If a shader object is bound---     to the+-- -   #VUID-vkCmdDrawIndirectCount-None-04914# If there is a shader object+--     bound to the --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'---     stage, then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirectCount-None-04914# If the bound graphics---     pipeline state was created with the+--     stage or the bound graphics pipeline state was created with the --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'---     dynamic state enabled, then+--     dynamic state enabled then --     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT' --     /must/ have been called in the current command buffer prior to this --     draw command ----- -   #VUID-vkCmdDrawIndirectCount-Input-07939# If the bound graphics---     pipeline state was created with the+-- -   #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+--     dynamic state enabled then all variables with the @Input@ storage --     class decorated with @Location@ in the @Vertex@ @Execution@ @Model@ --     @OpEntryPoint@ /must/ contain a location in --     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@location@ ----- -   #VUID-vkCmdDrawIndirectCount-Input-08734# If the bound graphics---     pipeline state was created with the+-- -   #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+--     dynamic state enabled then the numeric type associated with all --     @Input@ variables of the corresponding @Location@ in the @Vertex@ --     @Execution@ @Model@ @OpEntryPoint@ /must/ be the same as --     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@ -- -- -   #VUID-vkCmdDrawIndirectCount-format-08936# If there is a shader---     object bound to a graphics stage or the currently bound graphics---     pipeline was created with the+--     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+--     dynamic state enabled and --     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@ --     has a 64-bit component, then the scalar width associated with all --     @Input@ variables of the corresponding @Location@ in the @Vertex@ --     @Execution@ @Model@ @OpEntryPoint@ /must/ be 64-bit -- -- -   #VUID-vkCmdDrawIndirectCount-format-08937# If there is a shader---     object bound to a graphics stage or the currently bound graphics---     pipeline was created with the+--     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+--     dynamic state enabled and the scalar width associated with a --     @Location@ decorated @Input@ variable in the @Vertex@ @Execution@ --     @Model@ @OpEntryPoint@ is 64-bit, then the corresponding --     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@ --     /must/ have a 64-bit component -- -- -   #VUID-vkCmdDrawIndirectCount-None-09203# If there is a shader object---     bound to a graphics stage or the currently bound graphics pipeline---     was created with the+--     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+--     dynamic state enabled and --     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@ --     has a 64-bit component, then all @Input@ variables at the --     corresponding @Location@ in the @Vertex@ @Execution@ @Model@ --     @OpEntryPoint@ /must/ not use components that are not present in the --     format ----- -   #VUID-vkCmdDrawIndirectCount-None-08882# If a shader object is bound---     to the+-- -   #VUID-vkCmdDrawIndirectCount-None-04875# If there is a shader object+--     bound to the --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'---     stage, then---     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirectCount-None-04875# If the bound graphics---     pipeline state was created with the+--     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-08883# If a shader object is bound---     to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'---     stage, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirectCount-None-04879# If the bound graphics---     pipeline state was created with the+-- -   #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-rasterizerDiscardEnable-08884# If a---     shader object is bound to any graphics stage, and the most recent---     call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE',---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnable'---     /must/ have been called in the current command buffer prior to this---     drawing command--- -- -   #VUID-vkCmdDrawIndirectCount-stage-06481# The bound graphics --     pipeline /must/ not have been created with the --     'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@@@ -3820,11 +3980,10 @@ --     <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'+--     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@@ -4433,6 +4592,9 @@ -- -- -   #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',@@ -4441,9 +4603,10 @@ --     command -- -- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08618# If a shader object---     is bound to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'---     stage, and the most recent call to+--     is bound to any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current 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'@@ -4455,8 +4618,12 @@ --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT' --     or --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'---     stage, 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/---     have been called in the current command buffer prior to this drawing+--     stage, and the most recent 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@@ -4546,6 +4713,9 @@ -- -- -   #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',@@ -4564,6 +4734,9 @@ -- -- -   #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',@@ -4582,6 +4755,9 @@ -- -- -   #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',@@ -4613,12 +4789,12 @@ -- -- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08626# If a shader object --     is bound to any graphics stage, and the most recent call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'---     in the current command buffer set @sampleLocationsEnable@ to---     'Vulkan.Core10.FundamentalTypes.TRUE', and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     'Vulkan.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@@ -4855,16 +5031,22 @@ --     the last call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' ----- -   #VUID-vkCmdDrawIndexedIndirectCount-None-09232# If a shader object---     is bound to any graphics stage, and the @VK_NV_clip_space_w_scaling@---     extension is enabled on the device, then+-- -   #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+--     /must/ have been called in the current command buffer prior to this --     drawing command ----- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08636# If a shader object---     is bound to any graphics stage, and the @VK_NV_clip_space_w_scaling@---     extension is enabled on the device, then the @viewportCount@+-- -   #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@@ -4897,33 +5079,40 @@ -- -- -   #VUID-vkCmdDrawIndexedIndirectCount-shadingRateImage-09233# If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>---     feature is enabled, and the most recent call to+--     feature is enabled, and a shader object is bound to any graphics+--     stage, and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set rasterizerDiscardEnable to+--     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+--     /must/ have been called in the current command buffer prior to this --     drawing command ----- -   #VUID-vkCmdDrawIndexedIndirectCount-shadingRateImage-09234# If a---     shader object is bound to any graphics stage, and the+-- -   #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 on the device, and the most recent call to+--     feature is enabled, and a shader object is bound to any graphics+--     stage, and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set rasterizerDiscardEnable to+--     in 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+--     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+--     /must/ have been called in the current command buffer prior to this --     drawing command ----- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08637# If a shader object---     is bound to any graphics stage, and the+-- -   #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 on the device, then the @viewportCount@ parameter---     in the last call to+--     feature is enabled, and a shader object is bound to any graphics+--     stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in 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@@ -4971,16 +5160,18 @@ --     /must/ have been called in the current command buffer prior to this --     drawing command ----- -   #VUID-vkCmdDrawIndexedIndirectCount-exclusiveScissor-09235# If a---     shader object is bound to any graphics stage, and the+-- -   #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, then+--     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+--     /must/ have been called in the current command buffer prior to this --     drawing command ----- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08638# If a shader object---     is bound to any graphics stage, and the most recent call to+-- -   #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',@@ -5032,12 +5223,12 @@ -- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08641# If a shader object --     is bound to the --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'---     stage, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>---     feature is enabled on the device, and the most recent call to+--     stage, and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     '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@@ -5081,7 +5272,9 @@ --     'Vulkan.Core10.FundamentalTypes.FALSE' -- -- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08643# If a shader object---     is bound to any graphics stage, and the most recent call to+--     is bound to the+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'+--     stage, and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     in the current command buffer set @rasterizerDiscardEnable@ to --     'Vulkan.Core10.FundamentalTypes.FALSE', then for each color@@ -5443,7 +5636,10 @@ --     call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     '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@@ -5947,7 +6143,9 @@ --     drawing command -- -- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08658# If a shader object---     is bound to any graphics stage, and the most recent call to+--     is bound to the+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'+--     stage, and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     in the current command buffer set @rasterizerDiscardEnable@ to --     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to@@ -6078,6 +6276,20 @@ --     /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'@@ -6090,7 +6302,10 @@ --     @VK_EXT_provoking_vertex@ extension is enabled, and a shader object --     is bound to the --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'---     stage, then+--     stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_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@@ -6106,6 +6321,9 @@ -- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08666# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader --     object is bound to any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in 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@@ -6115,7 +6333,12 @@ -- -- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08667# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader---     object is bound to the vertex stage, and the most recent call to+--     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@@ -6125,8 +6348,14 @@ -- -- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08668# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader---     object that outputs line primitives is bound to the tessellation---     evaluation or geometry stage, then+--     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@@ -6142,6 +6371,9 @@ -- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08669# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader --     object is bound to any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in 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@@ -6151,7 +6383,12 @@ -- -- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08670# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader---     object is bound to the vertex stage, and the most recent call to+--     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@@ -6161,8 +6398,14 @@ -- -- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08671# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader---     object that outputs line primitives is bound to the tessellation---     evaluation or geometry stage, then+--     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@@ -6178,6 +6421,9 @@ -- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08672# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader --     object is bound to any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in 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@@ -6264,6 +6510,9 @@ --     shader object is bound to the --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' --     stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in 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@@ -6351,7 +6600,7 @@ --     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+--     /must/ have been called in the current command buffer prior to this --     drawing command -- -- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08681# If the@@ -6482,6 +6731,21 @@ --     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'@@ -6494,6 +6758,21 @@ --     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'@@ -6506,6 +6785,21 @@ --     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'@@ -6567,7 +6861,9 @@ --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' -- -- -   #VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsEnable-07484# If---     the bound graphics pipeline was created with the+--     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@@ -6578,7 +6874,9 @@ --     bit set -- -- -   #VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsEnable-07485# If---     the bound graphics pipeline state was created with the+--     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'@@ -6595,7 +6893,9 @@ --     with a @samples@ parameter equaling @rasterizationSamples@ -- -- -   #VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsEnable-07486# If---     the bound graphics pipeline state was created with the+--     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'@@ -6612,7 +6912,9 @@ --     with a @samples@ parameter equaling @rasterizationSamples@ -- -- -   #VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsEnable-07487# If---     the bound graphics pipeline state was created with the+--     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@@ -6675,9 +6977,10 @@ --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' -- -- -   #VUID-vkCmdDrawIndexedIndirectCount-coverageModulationTableEnable-07488#---     If the bound graphics pipeline state was created with the+--     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+--     state enabled, and the last call to --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV' --     set @coverageModulationTableEnable@ to --     'Vulkan.Core10.FundamentalTypes.TRUE', then the@@ -6712,6 +7015,29 @@ --     '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@@ -6748,6 +7074,15 @@ --     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@@ -7003,15 +7338,15 @@ --     and a fragment shader is bound, it /must/ not declare the --     @DepthReplacing@ or @StencilRefReplacingEXT@ execution modes ----- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08880# If a shader object---     is bound to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'---     stage and the+-- -   #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 the most recent call to+--     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'+--     '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@@ -7084,8 +7419,10 @@ --     described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input ???> ----- -   #VUID-vkCmdDrawIndexedIndirectCount-None-07842# If the bound---     graphics pipeline state was created with the+-- -   #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'@@ -7128,107 +7465,90 @@ --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT' --     /must/ not be @NULL@ ----- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08881# If a shader object---     is bound to the+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-04914# If there is a shader+--     object bound to the --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'---     stage, then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirectCount-None-04914# If the bound---     graphics pipeline state was created with the+--     stage or the bound graphics pipeline state was created with the --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'---     dynamic state enabled, then+--     dynamic state enabled then --     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT' --     /must/ have been called in the current command buffer prior to this --     draw command ----- -   #VUID-vkCmdDrawIndexedIndirectCount-Input-07939# If the bound---     graphics pipeline state was created with the+-- -   #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+--     dynamic state enabled then all variables with the @Input@ storage --     class decorated with @Location@ in the @Vertex@ @Execution@ @Model@ --     @OpEntryPoint@ /must/ contain a location in --     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@location@ ----- -   #VUID-vkCmdDrawIndexedIndirectCount-Input-08734# If the bound---     graphics pipeline state was created with the+-- -   #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+--     dynamic state enabled then the numeric type associated with all --     @Input@ variables of the corresponding @Location@ in the @Vertex@ --     @Execution@ @Model@ @OpEntryPoint@ /must/ be the same as --     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@ -- -- -   #VUID-vkCmdDrawIndexedIndirectCount-format-08936# If there is a---     shader object bound to a graphics stage or the currently bound---     graphics pipeline was created with the+--     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+--     dynamic state enabled and --     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@ --     has a 64-bit component, then the scalar width associated with all --     @Input@ variables of the corresponding @Location@ in the @Vertex@ --     @Execution@ @Model@ @OpEntryPoint@ /must/ be 64-bit -- -- -   #VUID-vkCmdDrawIndexedIndirectCount-format-08937# If there is a---     shader object bound to a graphics stage or the currently bound---     graphics pipeline was created with the+--     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+--     dynamic state enabled and the scalar width associated with a --     @Location@ decorated @Input@ variable in the @Vertex@ @Execution@ --     @Model@ @OpEntryPoint@ is 64-bit, then the corresponding --     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@ --     /must/ have a 64-bit component -- -- -   #VUID-vkCmdDrawIndexedIndirectCount-None-09203# If there is a shader---     object bound to a graphics stage or the currently bound graphics---     pipeline was created with the+--     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+--     dynamic state enabled and --     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@ --     has a 64-bit component, then all @Input@ variables at the --     corresponding @Location@ in the @Vertex@ @Execution@ @Model@ --     @OpEntryPoint@ /must/ not use components that are not present in the --     format ----- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08882# If a shader object---     is bound to the+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-04875# If there is a shader+--     object bound to the --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'---     stage, then---     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirectCount-None-04875# If the bound---     graphics pipeline state was created with the+--     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-08883# If a shader object---     is bound to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'---     stage, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndexedIndirectCount-None-04879# If the bound---     graphics pipeline state was created with the+-- -   #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-rasterizerDiscardEnable-08884#---     If a shader object is bound to any graphics stage, and the most---     recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnable' --     /must/ have been called in the current command buffer prior to this --     drawing command
src/Vulkan/Core13/Promoted_From_VK_KHR_copy_commands2.hs view
@@ -1905,14 +1905,13 @@ --     /must/ be less than the @mipLevels@ specified in --     'Vulkan.Core10.Image.ImageCreateInfo' when @srcImage@ was created ----- -   #VUID-VkCopyImageInfo2-srcSubresource-07968# The+-- -   #VUID-VkCopyImageInfo2-srcSubresource-07968# If+--     @srcSubresource.layerCount@ is not+--     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS', --     @srcSubresource.baseArrayLayer@ + @srcSubresource.layerCount@ of---     each element of @pRegions@ , if @srcSubresource.layerCount@ is not---     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance5 maintenance5>---     is not enabled, /must/ be less than or equal to the @arrayLayers@---     specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @srcImage@---     was created+--     each element of @pRegions@ /must/ be less than or equal to the+--     @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'+--     when @srcImage@ was created -- -- -   #VUID-VkCopyImageInfo2-srcImage-07969# @srcImage@ /must/ not have --     been created with @flags@ containing@@ -1928,14 +1927,13 @@ --     /must/ be less than the @mipLevels@ specified in --     'Vulkan.Core10.Image.ImageCreateInfo' when @dstImage@ was created ----- -   #VUID-VkCopyImageInfo2-dstSubresource-07968# The+-- -   #VUID-VkCopyImageInfo2-dstSubresource-07968# If+--     @dstSubresource.layerCount@ is not+--     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS', --     @dstSubresource.baseArrayLayer@ + @dstSubresource.layerCount@ of---     each element of @pRegions@ , if @dstSubresource.layerCount@ is not---     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance5 maintenance5>---     is not enabled, /must/ be less than or equal to the @arrayLayers@---     specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @dstImage@---     was created+--     each element of @pRegions@ /must/ be less than or equal to the+--     @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'+--     when @dstImage@ was created -- -- -   #VUID-VkCopyImageInfo2-dstImage-07969# @dstImage@ /must/ not have --     been created with @flags@ containing@@ -2172,23 +2170,21 @@ --     /must/ be less than the @mipLevels@ specified in --     'Vulkan.Core10.Image.ImageCreateInfo' when @dstImage@ was created ----- -   #VUID-VkBlitImageInfo2-srcSubresource-01707# The+-- -   #VUID-VkBlitImageInfo2-srcSubresource-01707# If+--     @srcSubresource.layerCount@ is not+--     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS', --     @srcSubresource.baseArrayLayer@ + @srcSubresource.layerCount@ of---     each element of @pRegions@ , if @srcSubresource.layerCount@ is not---     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance5 maintenance5>---     is not enabled, /must/ be less than or equal to the @arrayLayers@---     specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @srcImage@---     was created+--     each element of @pRegions@ /must/ be less than or equal to the+--     @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'+--     when @srcImage@ was created ----- -   #VUID-VkBlitImageInfo2-dstSubresource-01708# The+-- -   #VUID-VkBlitImageInfo2-dstSubresource-01708# If+--     @srcSubresource.layerCount@ is not+--     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS', --     @dstSubresource.baseArrayLayer@ + @dstSubresource.layerCount@ of---     each element of @pRegions@ , if @srcSubresource.layerCount@ is not---     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance5 maintenance5>---     is not enabled, /must/ be less than or equal to the @arrayLayers@---     specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @dstImage@---     was created+--     each element of @pRegions@ /must/ be less than or equal to the+--     @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'+--     when @dstImage@ was created -- -- -   #VUID-VkBlitImageInfo2-dstImage-02545# @dstImage@ and @srcImage@ --     /must/ not have been created with @flags@ containing@@ -2523,14 +2519,13 @@ --     /must/ be less than the @mipLevels@ specified in --     'Vulkan.Core10.Image.ImageCreateInfo' when @dstImage@ was created ----- -   #VUID-VkCopyBufferToImageInfo2-imageSubresource-07968# The+-- -   #VUID-VkCopyBufferToImageInfo2-imageSubresource-07968# If+--     @imageSubresource.layerCount@ is not+--     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS', --     @imageSubresource.baseArrayLayer@ + @imageSubresource.layerCount@ of---     each element of @pRegions@ , if @imageSubresource.layerCount@ is not---     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance5 maintenance5>---     is not enabled, /must/ be less than or equal to the @arrayLayers@---     specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @dstImage@---     was created+--     each element of @pRegions@ /must/ be less than or equal to the+--     @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'+--     when @dstImage@ was created -- -- -   #VUID-VkCopyBufferToImageInfo2-dstImage-07969# @dstImage@ /must/ not --     have been created with @flags@ containing@@ -2844,14 +2839,13 @@ --     /must/ be less than the @mipLevels@ specified in --     'Vulkan.Core10.Image.ImageCreateInfo' when @srcImage@ was created ----- -   #VUID-VkCopyImageToBufferInfo2-imageSubresource-07968# The+-- -   #VUID-VkCopyImageToBufferInfo2-imageSubresource-07968# If+--     @imageSubresource.layerCount@ is not+--     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS', --     @imageSubresource.baseArrayLayer@ + @imageSubresource.layerCount@ of---     each element of @pRegions@ , if @imageSubresource.layerCount@ is not---     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance5 maintenance5>---     is not enabled, /must/ be less than or equal to the @arrayLayers@---     specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @srcImage@---     was created+--     each element of @pRegions@ /must/ be less than or equal to the+--     @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'+--     when @srcImage@ was created -- -- -   #VUID-VkCopyImageToBufferInfo2-srcImage-07969# @srcImage@ /must/ not --     have been created with @flags@ containing@@ -3152,23 +3146,21 @@ --     /must/ be less than the @mipLevels@ specified in --     'Vulkan.Core10.Image.ImageCreateInfo' when @dstImage@ was created ----- -   #VUID-VkResolveImageInfo2-srcSubresource-01711# The+-- -   #VUID-VkResolveImageInfo2-srcSubresource-01711# If+--     @srcSubresource.layerCount@ is not+--     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS', --     @srcSubresource.baseArrayLayer@ + @srcSubresource.layerCount@ of---     each element of @pRegions@ , if @srcSubresource.layerCount@ is not---     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance5 maintenance5>---     is not enabled, /must/ be less than or equal to the @arrayLayers@---     specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @srcImage@---     was created+--     each element of @pRegions@ /must/ be less than or equal to the+--     @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'+--     when @srcImage@ was created ----- -   #VUID-VkResolveImageInfo2-dstSubresource-01712# The+-- -   #VUID-VkResolveImageInfo2-dstSubresource-01712# If+--     @dstSubresource.layerCount@ is not+--     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS', --     @dstSubresource.baseArrayLayer@ + @dstSubresource.layerCount@ of---     each element of @pRegions@ , if @dstSubresource.layerCount@ is not---     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance5 maintenance5>---     is not enabled, /must/ be less than or equal to the @arrayLayers@---     specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @dstImage@---     was created+--     each element of @pRegions@ /must/ be less than or equal to the+--     @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'+--     when @dstImage@ was created -- -- -   #VUID-VkResolveImageInfo2-dstImage-02546# @dstImage@ and @srcImage@ --     /must/ not have been created with @flags@ containing
src/Vulkan/Core13/Promoted_From_VK_KHR_dynamic_rendering.hs view
@@ -799,27 +799,27 @@ --     width greater than or equal to --     \(\left\lceil{\frac{renderArea_{x}+renderArea_{width}}{maxFragmentDensityTexelSize_{width}}}\right\rceil\) ----- -   #VUID-VkRenderingInfo-pNext-06113# If the @pNext@ chain contains a+-- -   #VUID-VkRenderingInfo-pNext-06114# If the @pNext@ chain does not+--     contain --     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'---     structure, its @deviceRenderAreaCount@ member is not 0, and the+--     or its @deviceRenderAreaCount@ member is equal to 0 and the --     @imageView@ member of a --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT' --     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}}{maxFragmentDensityTexelSize_{width}}}\right\rceil\)---     for each element of @pDeviceRenderAreas@+--     height greater than or equal to+--     \(\left\lceil{\frac{renderArea_{y}+renderArea_{height}}{maxFragmentDensityTexelSize_{height}}}\right\rceil\) ----- -   #VUID-VkRenderingInfo-pNext-06114# If the @pNext@ chain does not---     contain+-- -   #VUID-VkRenderingInfo-pNext-06113# If the @pNext@ chain contains a --     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'---     or its @deviceRenderAreaCount@ member is equal to 0 and the+--     structure, its @deviceRenderAreaCount@ member is not 0, and the --     @imageView@ member of a --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT' --     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}}{maxFragmentDensityTexelSize_{height}}}\right\rceil\)+--     width greater than or equal to+--     \(\left\lceil{\frac{pDeviceRenderAreas_{x}+pDeviceRenderAreas_{width}}{maxFragmentDensityTexelSize_{width}}}\right\rceil\)+--     for each element of @pDeviceRenderAreas@ -- -- -   #VUID-VkRenderingInfo-pNext-06115# If the @pNext@ chain contains a --     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'@@ -851,27 +851,27 @@ --     width greater than or equal to --     \(\left\lceil{\frac{renderArea_{x}+renderArea_{width}}{shadingRateAttachmentTexelSize_{width}}}\right\rceil\) ----- -   #VUID-VkRenderingInfo-pNext-06120# If the @pNext@ chain contains a+-- -   #VUID-VkRenderingInfo-pNext-06121# If the @pNext@ chain does not+--     contain --     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'---     structure, its @deviceRenderAreaCount@ member is not 0, and the+--     or its @deviceRenderAreaCount@ member is equal to 0 and the --     @imageView@ member of a --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.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@+--     height greater than or equal to+--     \(\left\lceil{\frac{renderArea_{y}+renderArea_{height}}{shadingRateAttachmentTexelSize_{height}}}\right\rceil\) ----- -   #VUID-VkRenderingInfo-pNext-06121# If the @pNext@ chain does not---     contain+-- -   #VUID-VkRenderingInfo-pNext-06120# If the @pNext@ chain contains a --     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'---     or its @deviceRenderAreaCount@ member is equal to 0 and the+--     structure, its @deviceRenderAreaCount@ member is not 0, and the --     @imageView@ member of a --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.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\)+--     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 --     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'@@ -1194,24 +1194,34 @@ --     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE' or --     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_SAMPLE_ZERO_BIT' ----- -   #VUID-VkRenderingAttachmentInfo-imageView-06861# If @imageView@ is---     not 'Vulkan.Core10.APIConstants.NULL_HANDLE', @resolveMode@ is not---     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE', and the---     @pNext@ chain of 'RenderingInfo' does not includes a---     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'---     structure with the @multisampledRenderToSingleSampledEnable@ field---     equal to 'Vulkan.Core10.FundamentalTypes.TRUE', @imageView@ /must/+-- -   #VUID-VkRenderingAttachmentInfo-imageView-06861# @imageView@ /must/ --     not have a sample count of---     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'+--     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' if all+--     of the following hold: ----- -   #VUID-VkRenderingAttachmentInfo-imageView-06862# If @imageView@ is---     not 'Vulkan.Core10.APIConstants.NULL_HANDLE', @resolveMode@ is not---     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE', and the---     @pNext@ chain of 'RenderingInfo' does not includes a---     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'---     structure with the @multisampledRenderToSingleSampledEnable@ field---     equal to 'Vulkan.Core10.FundamentalTypes.TRUE', @resolveImageView@---     /must/ not be 'Vulkan.Core10.APIConstants.NULL_HANDLE'+--     -   @imageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE'+--+--     -   @resolveMode@ is not+--         'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE'+--+--     -   the @pNext@ chain of 'RenderingInfo' does not include a+--         'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'+--         structure with the @multisampledRenderToSingleSampledEnable@+--         field equal to 'Vulkan.Core10.FundamentalTypes.TRUE'+--+-- -   #VUID-VkRenderingAttachmentInfo-imageView-06862# @resolveImageView@+--     /must/ not be 'Vulkan.Core10.APIConstants.NULL_HANDLE' if all of the+--     following hold:+--+--     -   @imageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE'+--+--     -   @resolveMode@ is not+--         'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE'+--+--     -   the @pNext@ chain of 'RenderingInfo' does not include a+--         'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'+--         structure with the @multisampledRenderToSingleSampledEnable@+--         field equal to 'Vulkan.Core10.FundamentalTypes.TRUE' -- -- -   #VUID-VkRenderingAttachmentInfo-imageView-06863# If @imageView@ is --     not 'Vulkan.Core10.APIConstants.NULL_HANDLE', @resolveMode@ is not
src/Vulkan/Dynamic.hs view
@@ -114,6 +114,11 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_NVX_binary_import (CuLaunchInfoNVX) import {-# SOURCE #-} Vulkan.Extensions.VK_NVX_binary_import (CuModuleCreateInfoNVX) import {-# SOURCE #-} Vulkan.Extensions.Handles (CuModuleNVX)+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_cuda_kernel_launch (CudaFunctionCreateInfoNV)+import {-# SOURCE #-} Vulkan.Extensions.Handles (CudaFunctionNV)+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_cuda_kernel_launch (CudaLaunchInfoNV)+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_cuda_kernel_launch (CudaModuleCreateInfoNV)+import {-# SOURCE #-} Vulkan.Extensions.Handles (CudaModuleNV) import {-# SOURCE #-} Vulkan.Core10.Enums.CullModeFlagBits (CullModeFlags) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_debug_marker (DebugMarkerMarkerInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_debug_marker (DebugMarkerObjectNameInfoEXT)@@ -1271,6 +1276,12 @@   , pVkSetBufferCollectionImageConstraintsFUCHSIA :: FunPtr (Ptr Device_T -> BufferCollectionFUCHSIA -> ("pImageConstraintsInfo" ::: Ptr ImageConstraintsInfoFUCHSIA) -> IO Result)   , pVkDestroyBufferCollectionFUCHSIA :: FunPtr (Ptr Device_T -> BufferCollectionFUCHSIA -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ())   , pVkGetBufferCollectionPropertiesFUCHSIA :: FunPtr (Ptr Device_T -> BufferCollectionFUCHSIA -> ("pProperties" ::: Ptr BufferCollectionPropertiesFUCHSIA) -> IO Result)+  , pVkCreateCudaModuleNV :: FunPtr (Ptr Device_T -> ("pCreateInfo" ::: Ptr CudaModuleCreateInfoNV) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pModule" ::: Ptr CudaModuleNV) -> IO Result)+  , pVkGetCudaModuleCacheNV :: FunPtr (Ptr Device_T -> CudaModuleNV -> ("pCacheSize" ::: Ptr CSize) -> ("pCacheData" ::: Ptr ()) -> IO Result)+  , pVkCreateCudaFunctionNV :: FunPtr (Ptr Device_T -> ("pCreateInfo" ::: Ptr CudaFunctionCreateInfoNV) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pFunction" ::: Ptr CudaFunctionNV) -> IO Result)+  , pVkDestroyCudaModuleNV :: FunPtr (Ptr Device_T -> CudaModuleNV -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ())+  , pVkDestroyCudaFunctionNV :: FunPtr (Ptr Device_T -> CudaFunctionNV -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ())+  , pVkCmdCudaLaunchKernelNV :: FunPtr (Ptr CommandBuffer_T -> ("pLaunchInfo" ::: Ptr CudaLaunchInfoNV) -> IO ())   , pVkCmdBeginRendering :: FunPtr (Ptr CommandBuffer_T -> ("pRenderingInfo" ::: Ptr (SomeStruct RenderingInfo)) -> IO ())   , pVkCmdEndRendering :: FunPtr (Ptr CommandBuffer_T -> IO ())   , pVkGetDescriptorSetLayoutHostMappingInfoVALVE :: FunPtr (Ptr Device_T -> ("pBindingReference" ::: Ptr DescriptorSetBindingReferenceVALVE) -> ("pHostMapping" ::: Ptr DescriptorSetLayoutHostMappingInfoVALVE) -> IO ())@@ -1801,7 +1812,14 @@     nullFunPtr     nullFunPtr     nullFunPtr-    nullFunPtr nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr  foreign import ccall #if !defined(SAFE_FOREIGN_CALLS)@@ -2309,6 +2327,12 @@   vkSetBufferCollectionImageConstraintsFUCHSIA <- getDeviceProcAddr' handle (Ptr "vkSetBufferCollectionImageConstraintsFUCHSIA"#)   vkDestroyBufferCollectionFUCHSIA <- getDeviceProcAddr' handle (Ptr "vkDestroyBufferCollectionFUCHSIA"#)   vkGetBufferCollectionPropertiesFUCHSIA <- getDeviceProcAddr' handle (Ptr "vkGetBufferCollectionPropertiesFUCHSIA"#)+  vkCreateCudaModuleNV <- getDeviceProcAddr' handle (Ptr "vkCreateCudaModuleNV"#)+  vkGetCudaModuleCacheNV <- getDeviceProcAddr' handle (Ptr "vkGetCudaModuleCacheNV"#)+  vkCreateCudaFunctionNV <- getDeviceProcAddr' handle (Ptr "vkCreateCudaFunctionNV"#)+  vkDestroyCudaModuleNV <- getDeviceProcAddr' handle (Ptr "vkDestroyCudaModuleNV"#)+  vkDestroyCudaFunctionNV <- getDeviceProcAddr' handle (Ptr "vkDestroyCudaFunctionNV"#)+  vkCmdCudaLaunchKernelNV <- getDeviceProcAddr' handle (Ptr "vkCmdCudaLaunchKernelNV"#)   vkCmdBeginRendering <- getFirstDeviceProcAddr [ (Ptr "vkCmdBeginRenderingKHR"#)                                                 , (Ptr "vkCmdBeginRendering"#) ]   vkCmdEndRendering <- getFirstDeviceProcAddr [ (Ptr "vkCmdEndRenderingKHR"#)@@ -2786,6 +2810,12 @@     (castFunPtr @_ @(Ptr Device_T -> BufferCollectionFUCHSIA -> ("pImageConstraintsInfo" ::: Ptr ImageConstraintsInfoFUCHSIA) -> IO Result) vkSetBufferCollectionImageConstraintsFUCHSIA)     (castFunPtr @_ @(Ptr Device_T -> BufferCollectionFUCHSIA -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ()) vkDestroyBufferCollectionFUCHSIA)     (castFunPtr @_ @(Ptr Device_T -> BufferCollectionFUCHSIA -> ("pProperties" ::: Ptr BufferCollectionPropertiesFUCHSIA) -> IO Result) vkGetBufferCollectionPropertiesFUCHSIA)+    (castFunPtr @_ @(Ptr Device_T -> ("pCreateInfo" ::: Ptr CudaModuleCreateInfoNV) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pModule" ::: Ptr CudaModuleNV) -> IO Result) vkCreateCudaModuleNV)+    (castFunPtr @_ @(Ptr Device_T -> CudaModuleNV -> ("pCacheSize" ::: Ptr CSize) -> ("pCacheData" ::: Ptr ()) -> IO Result) vkGetCudaModuleCacheNV)+    (castFunPtr @_ @(Ptr Device_T -> ("pCreateInfo" ::: Ptr CudaFunctionCreateInfoNV) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pFunction" ::: Ptr CudaFunctionNV) -> IO Result) vkCreateCudaFunctionNV)+    (castFunPtr @_ @(Ptr Device_T -> CudaModuleNV -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ()) vkDestroyCudaModuleNV)+    (castFunPtr @_ @(Ptr Device_T -> CudaFunctionNV -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ()) vkDestroyCudaFunctionNV)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("pLaunchInfo" ::: Ptr CudaLaunchInfoNV) -> IO ()) vkCmdCudaLaunchKernelNV)     (castFunPtr @_ @(Ptr CommandBuffer_T -> ("pRenderingInfo" ::: Ptr (SomeStruct RenderingInfo)) -> IO ()) vkCmdBeginRendering)     (castFunPtr @_ @(Ptr CommandBuffer_T -> IO ()) vkCmdEndRendering)     (castFunPtr @_ @(Ptr Device_T -> ("pBindingReference" ::: Ptr DescriptorSetBindingReferenceVALVE) -> ("pHostMapping" ::: Ptr DescriptorSetLayoutHostMappingInfoVALVE) -> IO ()) vkGetDescriptorSetLayoutHostMappingInfoVALVE)
src/Vulkan/Extensions.hs view
@@ -28,6 +28,7 @@                           , module Vulkan.Extensions.VK_ANDROID_external_format_resolve                           , module Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer                           , module Vulkan.Extensions.VK_ARM_rasterization_order_attachment_access+                          , module Vulkan.Extensions.VK_ARM_scheduling_controls                           , module Vulkan.Extensions.VK_ARM_shader_core_builtins                           , module Vulkan.Extensions.VK_ARM_shader_core_properties                           , module Vulkan.Extensions.VK_EXT_4444_formats@@ -282,6 +283,7 @@                           , module Vulkan.Extensions.VK_NV_copy_memory_indirect                           , module Vulkan.Extensions.VK_NV_corner_sampled_image                           , module Vulkan.Extensions.VK_NV_coverage_reduction_mode+                          , module Vulkan.Extensions.VK_NV_cuda_kernel_launch                           , module Vulkan.Extensions.VK_NV_dedicated_allocation                           , module Vulkan.Extensions.VK_NV_dedicated_allocation_image_aliasing                           , module Vulkan.Extensions.VK_NV_descriptor_pool_overallocation@@ -370,6 +372,7 @@ import Vulkan.Extensions.VK_ANDROID_external_format_resolve import Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer import Vulkan.Extensions.VK_ARM_rasterization_order_attachment_access+import Vulkan.Extensions.VK_ARM_scheduling_controls import Vulkan.Extensions.VK_ARM_shader_core_builtins import Vulkan.Extensions.VK_ARM_shader_core_properties import Vulkan.Extensions.VK_EXT_4444_formats@@ -624,6 +627,7 @@ import Vulkan.Extensions.VK_NV_copy_memory_indirect import Vulkan.Extensions.VK_NV_corner_sampled_image import Vulkan.Extensions.VK_NV_coverage_reduction_mode+import Vulkan.Extensions.VK_NV_cuda_kernel_launch import Vulkan.Extensions.VK_NV_dedicated_allocation import Vulkan.Extensions.VK_NV_dedicated_allocation_image_aliasing import Vulkan.Extensions.VK_NV_descriptor_pool_overallocation
src/Vulkan/Extensions/Handles.hs view
@@ -18,6 +18,8 @@                                   , SwapchainKHR(..)                                   , DebugReportCallbackEXT(..)                                   , DebugUtilsMessengerEXT(..)+                                  , CudaModuleNV(..)+                                  , CudaFunctionNV(..)                                   , Instance(..)                                   , PhysicalDevice(..)                                   , Device(..)@@ -57,6 +59,8 @@ import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR)) import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_ACCELERATION_STRUCTURE_NV)) import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA))+import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_CUDA_FUNCTION_NV))+import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_CUDA_MODULE_NV)) import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_CU_FUNCTION_NVX)) import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_CU_MODULE_NVX)) import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT))@@ -599,4 +603,39 @@                                                    , h ) instance Show DebugUtilsMessengerEXT where   showsPrec p (DebugUtilsMessengerEXT x) = showParen (p >= 11) (showString "DebugUtilsMessengerEXT 0x" . showHex x)+++-- | VkCudaModuleNV - Opaque handle to a CUDA module object+--+-- = See Also+--+-- <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',+-- 'Vulkan.Extensions.VK_NV_cuda_kernel_launch.destroyCudaModuleNV',+-- 'Vulkan.Extensions.VK_NV_cuda_kernel_launch.getCudaModuleCacheNV'+newtype CudaModuleNV = CudaModuleNV Word64+  deriving newtype (Eq, Ord, Storable, Zero)+  deriving anyclass (IsHandle)+instance HasObjectType CudaModuleNV where+  objectTypeAndHandle (CudaModuleNV h) = (OBJECT_TYPE_CUDA_MODULE_NV, h)+instance Show CudaModuleNV where+  showsPrec p (CudaModuleNV x) = showParen (p >= 11) (showString "CudaModuleNV 0x" . showHex x)+++-- | VkCudaFunctionNV - Opaque handle to a CUDA function object+--+-- = See Also+--+-- <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',+-- 'Vulkan.Extensions.VK_NV_cuda_kernel_launch.destroyCudaFunctionNV'+newtype CudaFunctionNV = CudaFunctionNV Word64+  deriving newtype (Eq, Ord, Storable, Zero)+  deriving anyclass (IsHandle)+instance HasObjectType CudaFunctionNV where+  objectTypeAndHandle (CudaFunctionNV h) = (OBJECT_TYPE_CUDA_FUNCTION_NV, h)+instance Show CudaFunctionNV where+  showsPrec p (CudaFunctionNV x) = showParen (p >= 11) (showString "CudaFunctionNV 0x" . showHex x) 
src/Vulkan/Extensions/Handles.hs-boot view
@@ -5,6 +5,8 @@                                   , BufferCollectionFUCHSIA                                   , CuFunctionNVX                                   , CuModuleNVX+                                  , CudaFunctionNV+                                  , CudaModuleNV                                   , DebugReportCallbackEXT                                   , DebugUtilsMessengerEXT                                   , DeferredOperationKHR@@ -35,6 +37,12 @@   data CuModuleNVX+++data CudaFunctionNV+++data CudaModuleNV   data DebugReportCallbackEXT
src/Vulkan/Extensions/VK_AMDX_shader_enqueue.hs view
@@ -903,11 +903,10 @@ --     <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'+--     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@@ -1623,11 +1622,10 @@ --     <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'+--     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@@ -2377,11 +2375,10 @@ --     <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'+--     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
+ src/Vulkan/Extensions/VK_ARM_scheduling_controls.hs view
@@ -0,0 +1,433 @@+{-# language CPP #-}+-- | = Name+--+-- VK_ARM_scheduling_controls - device extension+--+-- == VK_ARM_scheduling_controls+--+-- [__Name String__]+--     @VK_ARM_scheduling_controls@+--+-- [__Extension Type__]+--     Device extension+--+-- [__Registered Extension Number__]+--     418+--+-- [__Revision__]+--     1+--+-- [__Ratification Status__]+--     Not ratified+--+-- [__Extension and Version Dependencies__]+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_ARM_shader_core_builtins VK_ARM_shader_core_builtins>+--+-- [__Contact__]+--+--     -   Kevin Petit+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_ARM_scheduling_controls] @kpet%0A*Here describe the issue or question you have about the VK_ARM_scheduling_controls extension* >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+--     2023-08-23+--+-- [__Interactions and External Dependencies__]+--     None+--+-- [__IP Status__]+--     No known IP claims.+--+-- [__Contributors__]+--+--     -   Kévin Petit, Arm Ltd.+--+--     -   Jan-Harald Fredriksen, Arm Ltd.+--+--     -   Mikel Garai, Arm Ltd.+--+-- == Description+--+-- This extension exposes a collection of controls to modify the scheduling+-- behaviour of Arm Mali devices.+--+-- == New Structures+--+-- -   Extending 'Vulkan.Core10.Device.DeviceQueueCreateInfo',+--     'Vulkan.Core10.Device.DeviceCreateInfo':+--+--     -   'DeviceQueueShaderCoreControlCreateInfoARM'+--+-- -   Extending+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+--     'Vulkan.Core10.Device.DeviceCreateInfo':+--+--     -   'PhysicalDeviceSchedulingControlsFeaturesARM'+--+-- -   Extending+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':+--+--     -   'PhysicalDeviceSchedulingControlsPropertiesARM'+--+-- == New Enums+--+-- -   'PhysicalDeviceSchedulingControlsFlagBitsARM'+--+-- == New Bitmasks+--+-- -   'PhysicalDeviceSchedulingControlsFlagsARM'+--+-- == New Enum Constants+--+-- -   'ARM_SCHEDULING_CONTROLS_EXTENSION_NAME'+--+-- -   'ARM_SCHEDULING_CONTROLS_SPEC_VERSION'+--+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DEVICE_QUEUE_SHADER_CORE_CONTROL_CREATE_INFO_ARM'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_FEATURES_ARM'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_PROPERTIES_ARM'+--+-- == New SPIR-V Capabilities+--+-- None.+--+-- == Issues+--+-- None.+--+-- == Version History+--+-- -   Revision 1, 2023-08-23 (Kévin Petit)+--+--     -   Initial revision+--+-- == See Also+--+-- 'DeviceQueueShaderCoreControlCreateInfoARM',+-- 'PhysicalDeviceSchedulingControlsFeaturesARM',+-- 'PhysicalDeviceSchedulingControlsFlagBitsARM',+-- 'PhysicalDeviceSchedulingControlsFlagsARM',+-- 'PhysicalDeviceSchedulingControlsPropertiesARM'+--+-- == Document Notes+--+-- For more information, see the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_ARM_scheduling_controls Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_ARM_scheduling_controls  ( DeviceQueueShaderCoreControlCreateInfoARM(..)+                                                     , PhysicalDeviceSchedulingControlsFeaturesARM(..)+                                                     , PhysicalDeviceSchedulingControlsPropertiesARM(..)+                                                     , PhysicalDeviceSchedulingControlsFlagsARM+                                                     , PhysicalDeviceSchedulingControlsFlagBitsARM( PHYSICAL_DEVICE_SCHEDULING_CONTROLS_SHADER_CORE_COUNT_ARM+                                                                                                  , ..+                                                                                                  )+                                                     , ARM_SCHEDULING_CONTROLS_SPEC_VERSION+                                                     , pattern ARM_SCHEDULING_CONTROLS_SPEC_VERSION+                                                     , ARM_SCHEDULING_CONTROLS_EXTENSION_NAME+                                                     , pattern ARM_SCHEDULING_CONTROLS_EXTENSION_NAME+                                                     ) where++import Data.Bits (Bits)+import Data.Bits (FiniteBits)+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 (showString)+import Numeric (showHex)+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 Foreign.Ptr (Ptr)+import GHC.Read (Read(readPrec))+import GHC.Show (Show(showsPrec))+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.FundamentalTypes (Flags64)+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DEVICE_QUEUE_SHADER_CORE_CONTROL_CREATE_INFO_ARM))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_FEATURES_ARM))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_PROPERTIES_ARM))+-- | VkDeviceQueueShaderCoreControlCreateInfoARM - Control the number of+-- shader cores used by queues+--+-- = Description+--+-- Queues created without specifying+-- 'DeviceQueueShaderCoreControlCreateInfoARM' will default to using all+-- the shader cores available.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_ARM_scheduling_controls VK_ARM_scheduling_controls>,+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data DeviceQueueShaderCoreControlCreateInfoARM = DeviceQueueShaderCoreControlCreateInfoARM+  { -- | @shaderCoreCount@ is the number of shader cores this queue uses.+    --+    -- #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@.+    shaderCoreCount :: Word32 }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (DeviceQueueShaderCoreControlCreateInfoARM)+#endif+deriving instance Show DeviceQueueShaderCoreControlCreateInfoARM++instance ToCStruct DeviceQueueShaderCoreControlCreateInfoARM where+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p DeviceQueueShaderCoreControlCreateInfoARM{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DEVICE_QUEUE_SHADER_CORE_CONTROL_CREATE_INFO_ARM)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Word32)) (shaderCoreCount)+    f+  cStructSize = 24+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DEVICE_QUEUE_SHADER_CORE_CONTROL_CREATE_INFO_ARM)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Word32)) (zero)+    f++instance FromCStruct DeviceQueueShaderCoreControlCreateInfoARM where+  peekCStruct p = do+    shaderCoreCount <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))+    pure $ DeviceQueueShaderCoreControlCreateInfoARM+             shaderCoreCount++instance Storable DeviceQueueShaderCoreControlCreateInfoARM where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero DeviceQueueShaderCoreControlCreateInfoARM where+  zero = DeviceQueueShaderCoreControlCreateInfoARM+           zero+++-- | VkPhysicalDeviceSchedulingControlsFeaturesARM - Structure describing+-- scheduling controls features that can be supported by an implementation+--+-- = Members+--+-- This structure describes the following features:+--+-- = Description+--+-- If the 'PhysicalDeviceSchedulingControlsFeaturesARM' 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. 'PhysicalDeviceSchedulingControlsFeaturesARM' /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_ARM_scheduling_controls VK_ARM_scheduling_controls>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceSchedulingControlsFeaturesARM = PhysicalDeviceSchedulingControlsFeaturesARM+  { -- | #features-schedulingControls# @schedulingControls@ indicates that the+    -- implementation supports scheduling controls.+    schedulingControls :: Bool }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceSchedulingControlsFeaturesARM)+#endif+deriving instance Show PhysicalDeviceSchedulingControlsFeaturesARM++instance ToCStruct PhysicalDeviceSchedulingControlsFeaturesARM where+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p PhysicalDeviceSchedulingControlsFeaturesARM{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_FEATURES_ARM)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (schedulingControls))+    f+  cStructSize = 24+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_FEATURES_ARM)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+    f++instance FromCStruct PhysicalDeviceSchedulingControlsFeaturesARM where+  peekCStruct p = do+    schedulingControls <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+    pure $ PhysicalDeviceSchedulingControlsFeaturesARM+             (bool32ToBool schedulingControls)++instance Storable PhysicalDeviceSchedulingControlsFeaturesARM where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceSchedulingControlsFeaturesARM where+  zero = PhysicalDeviceSchedulingControlsFeaturesARM+           zero+++-- | VkPhysicalDeviceSchedulingControlsPropertiesARM - Structure containing+-- scheduling control properties of a physical device+--+-- = Members+--+-- -   #limits-schedulingControlsFlags#@schedulingControlsFlags@ specifies+--     the specific scheduling controls that a physical device supports.+--+-- = Description+--+-- If the 'PhysicalDeviceSchedulingControlsPropertiesARM' 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_ARM_scheduling_controls VK_ARM_scheduling_controls>,+-- 'PhysicalDeviceSchedulingControlsFlagsARM',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceSchedulingControlsPropertiesARM = PhysicalDeviceSchedulingControlsPropertiesARM+  { -- | #VUID-VkPhysicalDeviceSchedulingControlsPropertiesARM-schedulingControlsFlags-parameter#+    -- @schedulingControlsFlags@ /must/ be a valid combination of+    -- 'PhysicalDeviceSchedulingControlsFlagBitsARM' values+    --+    -- #VUID-VkPhysicalDeviceSchedulingControlsPropertiesARM-schedulingControlsFlags-requiredbitmask#+    -- @schedulingControlsFlags@ /must/ not be @0@+    schedulingControlsFlags :: PhysicalDeviceSchedulingControlsFlagsARM }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceSchedulingControlsPropertiesARM)+#endif+deriving instance Show PhysicalDeviceSchedulingControlsPropertiesARM++instance ToCStruct PhysicalDeviceSchedulingControlsPropertiesARM where+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p PhysicalDeviceSchedulingControlsPropertiesARM{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_PROPERTIES_ARM)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr PhysicalDeviceSchedulingControlsFlagsARM)) (schedulingControlsFlags)+    f+  cStructSize = 24+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_PROPERTIES_ARM)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr PhysicalDeviceSchedulingControlsFlagsARM)) (zero)+    f++instance FromCStruct PhysicalDeviceSchedulingControlsPropertiesARM where+  peekCStruct p = do+    schedulingControlsFlags <- peek @PhysicalDeviceSchedulingControlsFlagsARM ((p `plusPtr` 16 :: Ptr PhysicalDeviceSchedulingControlsFlagsARM))+    pure $ PhysicalDeviceSchedulingControlsPropertiesARM+             schedulingControlsFlags++instance Storable PhysicalDeviceSchedulingControlsPropertiesARM where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceSchedulingControlsPropertiesARM where+  zero = PhysicalDeviceSchedulingControlsPropertiesARM+           zero+++type PhysicalDeviceSchedulingControlsFlagsARM = PhysicalDeviceSchedulingControlsFlagBitsARM++-- | VkPhysicalDeviceSchedulingControlsFlagBitsARM - Bitmask specifying+-- scheduling controls supported by a physical device+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_ARM_scheduling_controls VK_ARM_scheduling_controls>+newtype PhysicalDeviceSchedulingControlsFlagBitsARM = PhysicalDeviceSchedulingControlsFlagBitsARM Flags64+  deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)++-- | 'PHYSICAL_DEVICE_SCHEDULING_CONTROLS_SHADER_CORE_COUNT_ARM' indicates+-- that a 'DeviceQueueShaderCoreControlCreateInfoARM' structure /may/ be+-- included in the @pNext@ chain of a+-- 'Vulkan.Core10.Device.DeviceQueueCreateInfo' or+-- 'Vulkan.Core10.Device.DeviceCreateInfo' structure.+pattern PHYSICAL_DEVICE_SCHEDULING_CONTROLS_SHADER_CORE_COUNT_ARM = PhysicalDeviceSchedulingControlsFlagBitsARM 0x0000000000000001++conNamePhysicalDeviceSchedulingControlsFlagBitsARM :: String+conNamePhysicalDeviceSchedulingControlsFlagBitsARM = "PhysicalDeviceSchedulingControlsFlagBitsARM"++enumPrefixPhysicalDeviceSchedulingControlsFlagBitsARM :: String+enumPrefixPhysicalDeviceSchedulingControlsFlagBitsARM = "PHYSICAL_DEVICE_SCHEDULING_CONTROLS_SHADER_CORE_COUNT_ARM"++showTablePhysicalDeviceSchedulingControlsFlagBitsARM :: [(PhysicalDeviceSchedulingControlsFlagBitsARM, String)]+showTablePhysicalDeviceSchedulingControlsFlagBitsARM =+  [+    ( PHYSICAL_DEVICE_SCHEDULING_CONTROLS_SHADER_CORE_COUNT_ARM+    , ""+    )+  ]++instance Show PhysicalDeviceSchedulingControlsFlagBitsARM where+  showsPrec =+    enumShowsPrec+      enumPrefixPhysicalDeviceSchedulingControlsFlagBitsARM+      showTablePhysicalDeviceSchedulingControlsFlagBitsARM+      conNamePhysicalDeviceSchedulingControlsFlagBitsARM+      (\(PhysicalDeviceSchedulingControlsFlagBitsARM x) -> x)+      (\x -> showString "0x" . showHex x)++instance Read PhysicalDeviceSchedulingControlsFlagBitsARM where+  readPrec =+    enumReadPrec+      enumPrefixPhysicalDeviceSchedulingControlsFlagBitsARM+      showTablePhysicalDeviceSchedulingControlsFlagBitsARM+      conNamePhysicalDeviceSchedulingControlsFlagBitsARM+      PhysicalDeviceSchedulingControlsFlagBitsARM++type ARM_SCHEDULING_CONTROLS_SPEC_VERSION = 1++-- No documentation found for TopLevel "VK_ARM_SCHEDULING_CONTROLS_SPEC_VERSION"+pattern ARM_SCHEDULING_CONTROLS_SPEC_VERSION :: forall a . Integral a => a+pattern ARM_SCHEDULING_CONTROLS_SPEC_VERSION = 1+++type ARM_SCHEDULING_CONTROLS_EXTENSION_NAME = "VK_ARM_scheduling_controls"++-- No documentation found for TopLevel "VK_ARM_SCHEDULING_CONTROLS_EXTENSION_NAME"+pattern ARM_SCHEDULING_CONTROLS_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a+pattern ARM_SCHEDULING_CONTROLS_EXTENSION_NAME = "VK_ARM_scheduling_controls"+
+ src/Vulkan/Extensions/VK_ARM_scheduling_controls.hs-boot view
@@ -0,0 +1,155 @@+{-# language CPP #-}+-- | = Name+--+-- VK_ARM_scheduling_controls - device extension+--+-- == VK_ARM_scheduling_controls+--+-- [__Name String__]+--     @VK_ARM_scheduling_controls@+--+-- [__Extension Type__]+--     Device extension+--+-- [__Registered Extension Number__]+--     418+--+-- [__Revision__]+--     1+--+-- [__Ratification Status__]+--     Not ratified+--+-- [__Extension and Version Dependencies__]+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_ARM_shader_core_builtins VK_ARM_shader_core_builtins>+--+-- [__Contact__]+--+--     -   Kevin Petit+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_ARM_scheduling_controls] @kpet%0A*Here describe the issue or question you have about the VK_ARM_scheduling_controls extension* >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+--     2023-08-23+--+-- [__Interactions and External Dependencies__]+--     None+--+-- [__IP Status__]+--     No known IP claims.+--+-- [__Contributors__]+--+--     -   Kévin Petit, Arm Ltd.+--+--     -   Jan-Harald Fredriksen, Arm Ltd.+--+--     -   Mikel Garai, Arm Ltd.+--+-- == Description+--+-- This extension exposes a collection of controls to modify the scheduling+-- behaviour of Arm Mali devices.+--+-- == New Structures+--+-- -   Extending 'Vulkan.Core10.Device.DeviceQueueCreateInfo',+--     'Vulkan.Core10.Device.DeviceCreateInfo':+--+--     -   'DeviceQueueShaderCoreControlCreateInfoARM'+--+-- -   Extending+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+--     'Vulkan.Core10.Device.DeviceCreateInfo':+--+--     -   'PhysicalDeviceSchedulingControlsFeaturesARM'+--+-- -   Extending+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':+--+--     -   'PhysicalDeviceSchedulingControlsPropertiesARM'+--+-- == New Enums+--+-- -   'PhysicalDeviceSchedulingControlsFlagBitsARM'+--+-- == New Bitmasks+--+-- -   'PhysicalDeviceSchedulingControlsFlagsARM'+--+-- == New Enum Constants+--+-- -   'ARM_SCHEDULING_CONTROLS_EXTENSION_NAME'+--+-- -   'ARM_SCHEDULING_CONTROLS_SPEC_VERSION'+--+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DEVICE_QUEUE_SHADER_CORE_CONTROL_CREATE_INFO_ARM'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_FEATURES_ARM'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_PROPERTIES_ARM'+--+-- == New SPIR-V Capabilities+--+-- None.+--+-- == Issues+--+-- None.+--+-- == Version History+--+-- -   Revision 1, 2023-08-23 (Kévin Petit)+--+--     -   Initial revision+--+-- == See Also+--+-- 'DeviceQueueShaderCoreControlCreateInfoARM',+-- 'PhysicalDeviceSchedulingControlsFeaturesARM',+-- 'PhysicalDeviceSchedulingControlsFlagBitsARM',+-- 'PhysicalDeviceSchedulingControlsFlagsARM',+-- 'PhysicalDeviceSchedulingControlsPropertiesARM'+--+-- == Document Notes+--+-- For more information, see the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_ARM_scheduling_controls Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_ARM_scheduling_controls  ( DeviceQueueShaderCoreControlCreateInfoARM+                                                     , PhysicalDeviceSchedulingControlsFeaturesARM+                                                     , PhysicalDeviceSchedulingControlsPropertiesARM+                                                     ) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data DeviceQueueShaderCoreControlCreateInfoARM++instance ToCStruct DeviceQueueShaderCoreControlCreateInfoARM+instance Show DeviceQueueShaderCoreControlCreateInfoARM++instance FromCStruct DeviceQueueShaderCoreControlCreateInfoARM+++data PhysicalDeviceSchedulingControlsFeaturesARM++instance ToCStruct PhysicalDeviceSchedulingControlsFeaturesARM+instance Show PhysicalDeviceSchedulingControlsFeaturesARM++instance FromCStruct PhysicalDeviceSchedulingControlsFeaturesARM+++data PhysicalDeviceSchedulingControlsPropertiesARM++instance ToCStruct PhysicalDeviceSchedulingControlsPropertiesARM+instance Show PhysicalDeviceSchedulingControlsPropertiesARM++instance FromCStruct PhysicalDeviceSchedulingControlsPropertiesARM+
src/Vulkan/Extensions/VK_EXT_debug_report.hs view
@@ -374,6 +374,8 @@                                                                         , DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT                                                                         , DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT                                                                         , DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT+                                                                        , DEBUG_REPORT_OBJECT_TYPE_CUDA_FUNCTION_NV+                                                                        , DEBUG_REPORT_OBJECT_TYPE_CUDA_MODULE_NV                                                                         , DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT                                                                         , DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT                                                                         , DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT@@ -1124,6 +1126,12 @@ -- No documentation found for Nested "VkDebugReportObjectTypeEXT" "VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT" pattern DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT = DebugReportObjectTypeEXT 1000366000 +-- No documentation found for Nested "VkDebugReportObjectTypeEXT" "VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_FUNCTION_NV"+pattern DEBUG_REPORT_OBJECT_TYPE_CUDA_FUNCTION_NV = DebugReportObjectTypeEXT 1000307001++-- No documentation found for Nested "VkDebugReportObjectTypeEXT" "VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_MODULE_NV"+pattern DEBUG_REPORT_OBJECT_TYPE_CUDA_MODULE_NV = DebugReportObjectTypeEXT 1000307000+ -- No documentation found for Nested "VkDebugReportObjectTypeEXT" "VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT" pattern DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT = DebugReportObjectTypeEXT 1000165000 @@ -1176,6 +1184,8 @@   , DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT   , DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT   , DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT+  , DEBUG_REPORT_OBJECT_TYPE_CUDA_FUNCTION_NV+  , DEBUG_REPORT_OBJECT_TYPE_CUDA_MODULE_NV   , DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT   , DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT   , DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT@@ -1324,6 +1334,14 @@   ,     ( DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT     , "BUFFER_COLLECTION_FUCHSIA_EXT"+    )+  ,+    ( DEBUG_REPORT_OBJECT_TYPE_CUDA_FUNCTION_NV+    , "CUDA_FUNCTION_NV"+    )+  ,+    ( DEBUG_REPORT_OBJECT_TYPE_CUDA_MODULE_NV+    , "CUDA_MODULE_NV"     )   ,     ( DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT
src/Vulkan/Extensions/VK_EXT_descriptor_buffer.hs view
@@ -724,7 +724,7 @@ -- -   #VUID-vkGetDescriptorEXT-dataSize-08125# @dataSize@ /must/ equal the --     size of a descriptor of type 'DescriptorGetInfoEXT'::@type@ --     determined by the value in---     'PhysicalDeviceDescriptorBufferPropertiesEXT', or+--     'PhysicalDeviceDescriptorBufferPropertiesEXT' , or determined by --     'PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT'::@combinedImageSamplerDensityMapDescriptorSize@ --     if @pDescriptorInfo@ specifies a --     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER'
src/Vulkan/Extensions/VK_EXT_device_address_binding_report.hs view
@@ -37,14 +37,14 @@ -- -- == Other Extension Metadata ----- [Last Modified Date]+-- [__Last Modified Date__] --     2020-11-23 -- -- [__Interactions and External Dependencies__] -- --     -   This extension requires @VK_EXT_debug_utils@ ----- [Contributors]+-- [__Contributors__] -- --     -   Ralph Potter, Samsung --
src/Vulkan/Extensions/VK_EXT_device_address_binding_report.hs-boot view
@@ -37,14 +37,14 @@ -- -- == Other Extension Metadata ----- [Last Modified Date]+-- [__Last Modified Date__] --     2020-11-23 -- -- [__Interactions and External Dependencies__] -- --     -   This extension requires @VK_EXT_debug_utils@ ----- [Contributors]+-- [__Contributors__] -- --     -   Ralph Potter, Samsung --
src/Vulkan/Extensions/VK_EXT_extended_dynamic_state.hs view
@@ -166,7 +166,7 @@ -- -- <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> -- allows the stride to be changed freely when supported via--- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'[].+-- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'. -- -- == Version History --
src/Vulkan/Extensions/VK_EXT_extended_dynamic_state.hs-boot view
@@ -166,7 +166,7 @@ -- -- <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> -- allows the stride to be changed freely when supported via--- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'[].+-- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'. -- -- == Version History --
src/Vulkan/Extensions/VK_EXT_extended_dynamic_state2.hs view
@@ -222,12 +222,17 @@ -- -- == Valid Usage ----- -   #VUID-vkCmdSetPatchControlPointsEXT-None-08574# Either the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState2PatchControlPoints extendedDynamicState2PatchControlPoints>---     feature or the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderObject shaderObject>---     feature or both /must/ be enabled+-- -   #VUID-vkCmdSetPatchControlPointsEXT-None-09422# At least one of the+--     following /must/ be true: --+--     -   The+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState2PatchControlPoints extendedDynamicState2PatchControlPoints>+--         feature is enabled+--+--     -   The+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>+--         feature is enabled+-- -- -   #VUID-vkCmdSetPatchControlPointsEXT-patchControlPoints-04874# --     @patchControlPoints@ /must/ be greater than zero and less than or --     equal to@@ -316,11 +321,16 @@ -- -- == Valid Usage ----- -   #VUID-vkCmdSetLogicOpEXT-None-08544# Either the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState2LogicOp extendedDynamicState2LogicOp>---     feature or the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderObject shaderObject>---     feature or both /must/ be enabled+-- -   #VUID-vkCmdSetLogicOpEXT-None-09422# At least one of the following+--     /must/ be true:+--+--     -   The+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState2LogicOp extendedDynamicState2LogicOp>+--         feature is enabled+--+--     -   The+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>+--         feature is enabled -- -- == Valid Usage (Implicit) --
src/Vulkan/Extensions/VK_EXT_extended_dynamic_state3.hs view
@@ -299,7 +299,7 @@ -- 1) What about the VkPipelineMultisampleStateCreateInfo state -- @sampleShadingEnable@ and @minSampleShading@? ----- [UNRESOLVED]+-- [__UNRESOLVED__] -- --     -   @sampleShadingEnable@ and @minSampleShading@ are required when --         compiling the fragment shader, and it is not meaningful to set@@ -525,12 +525,17 @@ -- -- == Valid Usage ----- -   #VUID-vkCmdSetTessellationDomainOriginEXT-None-08576# Either the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3TessellationDomainOrigin extendedDynamicState3TessellationDomainOrigin>---     feature or the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderObject shaderObject>---     feature or both /must/ be enabled+-- -   #VUID-vkCmdSetTessellationDomainOriginEXT-None-09423# At least one+--     of the following /must/ be true: --+--     -   The+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState3TessellationDomainOrigin extendedDynamicState3TessellationDomainOrigin>+--         feature is enabled+--+--     -   The+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>+--         feature is enabled+-- -- == Valid Usage (Implicit) -- -- -   #VUID-vkCmdSetTessellationDomainOriginEXT-commandBuffer-parameter#@@ -627,12 +632,17 @@ -- -- == Valid Usage ----- -   #VUID-vkCmdSetDepthClampEnableEXT-None-08582# Either the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3DepthClampEnable extendedDynamicState3DepthClampEnable>---     feature or the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderObject shaderObject>---     feature or both /must/ be enabled+-- -   #VUID-vkCmdSetDepthClampEnableEXT-None-09423# At least one of the+--     following /must/ be true: --+--     -   The+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState3DepthClampEnable extendedDynamicState3DepthClampEnable>+--         feature is enabled+--+--     -   The+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>+--         feature is enabled+-- -- -   #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@@ -722,12 +732,17 @@ -- -- == Valid Usage ----- -   #VUID-vkCmdSetPolygonModeEXT-None-08566# Either the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3PolygonMode extendedDynamicState3PolygonMode>---     feature or the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderObject shaderObject>---     feature or both /must/ be enabled+-- -   #VUID-vkCmdSetPolygonModeEXT-None-09423# At least one of the+--     following /must/ be true: --+--     -   The+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState3PolygonMode extendedDynamicState3PolygonMode>+--         feature is enabled+--+--     -   The+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>+--         feature is enabled+-- -- -   #VUID-vkCmdSetPolygonModeEXT-fillModeNonSolid-07424# If the --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-fillModeNonSolid fillModeNonSolid> --     feature is not enabled, @polygonMode@ /must/ be@@ -828,12 +843,17 @@ -- -- == Valid Usage ----- -   #VUID-vkCmdSetRasterizationSamplesEXT-None-08552# Either the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3RasterizationSamples extendedDynamicState3RasterizationSamples>---     feature or the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderObject shaderObject>---     feature or both /must/ be enabled+-- -   #VUID-vkCmdSetRasterizationSamplesEXT-None-09423# At least one of+--     the following /must/ be true: --+--     -   The+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState3RasterizationSamples extendedDynamicState3RasterizationSamples>+--         feature is enabled+--+--     -   The+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>+--         feature is enabled+-- -- == Valid Usage (Implicit) -- -- -   #VUID-vkCmdSetRasterizationSamplesEXT-commandBuffer-parameter#@@ -922,12 +942,17 @@ -- -- == Valid Usage ----- -   #VUID-vkCmdSetSampleMaskEXT-None-08504# Either the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3SampleMask extendedDynamicState3SampleMask>---     feature or the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderObject shaderObject>---     feature or both /must/ be enabled+-- -   #VUID-vkCmdSetSampleMaskEXT-None-09423# At least one of the+--     following /must/ be true: --+--     -   The+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState3SampleMask extendedDynamicState3SampleMask>+--         feature is enabled+--+--     -   The+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>+--         feature is enabled+-- -- == Valid Usage (Implicit) -- -- -   #VUID-vkCmdSetSampleMaskEXT-commandBuffer-parameter# @commandBuffer@@@ -1029,12 +1054,17 @@ -- -- == Valid Usage ----- -   #VUID-vkCmdSetAlphaToCoverageEnableEXT-None-08506# Either the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3AlphaToCoverageEnable extendedDynamicState3AlphaToCoverageEnable>---     feature or the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderObject shaderObject>---     feature or both /must/ be enabled+-- -   #VUID-vkCmdSetAlphaToCoverageEnableEXT-None-09423# At least one of+--     the following /must/ be true: --+--     -   The+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState3AlphaToCoverageEnable extendedDynamicState3AlphaToCoverageEnable>+--         feature is enabled+--+--     -   The+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>+--         feature is enabled+-- -- == Valid Usage (Implicit) -- -- -   #VUID-vkCmdSetAlphaToCoverageEnableEXT-commandBuffer-parameter#@@ -1120,12 +1150,17 @@ -- -- == Valid Usage ----- -   #VUID-vkCmdSetAlphaToOneEnableEXT-None-08508# Either the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3AlphaToOneEnable extendedDynamicState3AlphaToOneEnable>---     feature or the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderObject shaderObject>---     feature or both /must/ be enabled+-- -   #VUID-vkCmdSetAlphaToOneEnableEXT-None-09423# At least one of the+--     following /must/ be true: --+--     -   The+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState3AlphaToOneEnable extendedDynamicState3AlphaToOneEnable>+--         feature is enabled+--+--     -   The+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>+--         feature is enabled+-- -- -   #VUID-vkCmdSetAlphaToOneEnableEXT-alphaToOne-07607# If the --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-alphaToOne alphaToOne> --     feature is not enabled, @alphaToOneEnable@ /must/ be@@ -1216,17 +1251,17 @@ -- -- == Valid Usage ----- -   #VUID-vkCmdSetLogicOpEnableEXT-None-08542# Either the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3LogicOpEnable extendedDynamicState3LogicOpEnable>---     feature or the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderObject shaderObject>---     feature or both /must/ be enabled+-- -   #VUID-vkCmdSetLogicOpEnableEXT-None-09423# At least one of the+--     following /must/ be true: ----- -   #VUID-vkCmdSetLogicOpEnableEXT-logicOp-07366# If the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-logicOp logicOp>---     feature is not enabled, @logicOpEnable@ /must/ be---     'Vulkan.Core10.FundamentalTypes.FALSE'+--     -   The+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState3LogicOpEnable extendedDynamicState3LogicOpEnable>+--         feature is enabled --+--     -   The+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>+--         feature is enabled+-- -- == Valid Usage (Implicit) -- -- -   #VUID-vkCmdSetLogicOpEnableEXT-commandBuffer-parameter#@@ -1312,12 +1347,17 @@ -- -- == Valid Usage ----- -   #VUID-vkCmdSetColorBlendEnableEXT-None-08536# Either the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3ColorBlendEnable extendedDynamicState3ColorBlendEnable>---     feature or the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderObject shaderObject>---     feature or both /must/ be enabled+-- -   #VUID-vkCmdSetColorBlendEnableEXT-None-09423# At least one of the+--     following /must/ be true: --+--     -   The+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState3ColorBlendEnable extendedDynamicState3ColorBlendEnable>+--         feature is enabled+--+--     -   The+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>+--         feature is enabled+-- -- == Valid Usage (Implicit) -- -- -   #VUID-vkCmdSetColorBlendEnableEXT-commandBuffer-parameter#@@ -1426,12 +1466,17 @@ -- -- == Valid Usage ----- -   #VUID-vkCmdSetColorBlendEquationEXT-None-08538# Either the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3ColorBlendEquation extendedDynamicState3ColorBlendEquation>---     feature or the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderObject shaderObject>---     feature or both /must/ be enabled+-- -   #VUID-vkCmdSetColorBlendEquationEXT-None-09423# At least one of the+--     following /must/ be true: --+--     -   The+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState3ColorBlendEquation extendedDynamicState3ColorBlendEquation>+--         feature is enabled+--+--     -   The+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>+--         feature is enabled+-- -- == Valid Usage (Implicit) -- -- -   #VUID-vkCmdSetColorBlendEquationEXT-commandBuffer-parameter#@@ -1543,12 +1588,17 @@ -- -- == Valid Usage ----- -   #VUID-vkCmdSetColorWriteMaskEXT-None-08540# Either the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3ColorWriteMask extendedDynamicState3ColorWriteMask>---     feature or the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderObject shaderObject>---     feature or both /must/ be enabled+-- -   #VUID-vkCmdSetColorWriteMaskEXT-None-09423# At least one of the+--     following /must/ be true: --+--     -   The+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState3ColorWriteMask extendedDynamicState3ColorWriteMask>+--         feature is enabled+--+--     -   The+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>+--         feature is enabled+-- -- == Valid Usage (Implicit) -- -- -   #VUID-vkCmdSetColorWriteMaskEXT-commandBuffer-parameter#@@ -1654,12 +1704,17 @@ -- -- == Valid Usage ----- -   #VUID-vkCmdSetRasterizationStreamEXT-None-08550# Either the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3RasterizationStream extendedDynamicState3RasterizationStream>---     feature or the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderObject shaderObject>---     feature or both /must/ be enabled+-- -   #VUID-vkCmdSetRasterizationStreamEXT-None-09423# At least one of the+--     following /must/ be true: --+--     -   The+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState3RasterizationStream extendedDynamicState3RasterizationStream>+--         feature is enabled+--+--     -   The+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>+--         feature is enabled+-- -- -   #VUID-vkCmdSetRasterizationStreamEXT-transformFeedback-07411# The --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-transformFeedback transformFeedback> --     feature /must/ be enabled@@ -1757,13 +1812,17 @@ -- -- == Valid Usage ----- -   #VUID-vkCmdSetConservativeRasterizationModeEXT-None-08570# Either---     the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3ConservativeRasterizationMode extendedDynamicState3ConservativeRasterizationMode>---     feature or the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderObject shaderObject>---     feature or both /must/ be enabled+-- -   #VUID-vkCmdSetConservativeRasterizationModeEXT-None-09423# At least+--     one of the following /must/ be true: --+--     -   The+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState3ConservativeRasterizationMode extendedDynamicState3ConservativeRasterizationMode>+--         feature is enabled+--+--     -   The+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>+--         feature is enabled+-- -- == Valid Usage (Implicit) -- -- -   #VUID-vkCmdSetConservativeRasterizationModeEXT-commandBuffer-parameter#@@ -1857,13 +1916,17 @@ -- -- == Valid Usage ----- -   #VUID-vkCmdSetExtraPrimitiveOverestimationSizeEXT-None-08572# Either---     the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3ExtraPrimitiveOverestimationSize extendedDynamicState3ExtraPrimitiveOverestimationSize>---     feature or the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderObject shaderObject>---     feature or both /must/ be enabled+-- -   #VUID-vkCmdSetExtraPrimitiveOverestimationSizeEXT-None-09423# At+--     least one of the following /must/ be true: --+--     -   The+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState3ExtraPrimitiveOverestimationSize extendedDynamicState3ExtraPrimitiveOverestimationSize>+--         feature is enabled+--+--     -   The+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>+--         feature is enabled+-- -- -   #VUID-vkCmdSetExtraPrimitiveOverestimationSizeEXT-extraPrimitiveOverestimationSize-07428# --     @extraPrimitiveOverestimationSize@ /must/ be in the range of @0.0@ --     to@@ -1961,12 +2024,17 @@ -- -- == Valid Usage ----- -   #VUID-vkCmdSetDepthClipEnableEXT-None-08584# Either the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3DepthClipEnable extendedDynamicState3DepthClipEnable>---     feature or the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderObject shaderObject>---     feature or both /must/ be enabled+-- -   #VUID-vkCmdSetDepthClipEnableEXT-None-09423# At least one of the+--     following /must/ be true: --+--     -   The+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState3DepthClipEnable extendedDynamicState3DepthClipEnable>+--         feature is enabled+--+--     -   The+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>+--         feature is enabled+-- -- -   #VUID-vkCmdSetDepthClipEnableEXT-depthClipEnable-07451# The --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-depthClipEnable depthClipEnable> --     feature /must/ be enabled@@ -2056,12 +2124,17 @@ -- -- == Valid Usage ----- -   #VUID-vkCmdSetSampleLocationsEnableEXT-None-08554# Either the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3SampleLocationsEnable extendedDynamicState3SampleLocationsEnable>---     feature or the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderObject shaderObject>---     feature or both /must/ be enabled+-- -   #VUID-vkCmdSetSampleLocationsEnableEXT-None-09423# At least one of+--     the following /must/ be true: --+--     -   The+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState3SampleLocationsEnable extendedDynamicState3SampleLocationsEnable>+--         feature is enabled+--+--     -   The+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>+--         feature is enabled+-- -- == Valid Usage (Implicit) -- -- -   #VUID-vkCmdSetSampleLocationsEnableEXT-commandBuffer-parameter#@@ -2150,12 +2223,17 @@ -- -- == Valid Usage ----- -   #VUID-vkCmdSetColorBlendAdvancedEXT-None-08592# Either the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3ColorBlendAdvanced extendedDynamicState3ColorBlendAdvanced>---     feature or the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderObject shaderObject>---     feature or both /must/ be enabled+-- -   #VUID-vkCmdSetColorBlendAdvancedEXT-None-09423# At least one of the+--     following /must/ be true: --+--     -   The+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState3ColorBlendAdvanced extendedDynamicState3ColorBlendAdvanced>+--         feature is enabled+--+--     -   The+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>+--         feature is enabled+-- -- == Valid Usage (Implicit) -- -- -   #VUID-vkCmdSetColorBlendAdvancedEXT-commandBuffer-parameter#@@ -2258,12 +2336,17 @@ -- -- == Valid Usage ----- -   #VUID-vkCmdSetProvokingVertexModeEXT-None-08580# Either the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3ProvokingVertexMode extendedDynamicState3ProvokingVertexMode>---     feature or the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderObject shaderObject>---     feature or both /must/ be enabled+-- -   #VUID-vkCmdSetProvokingVertexModeEXT-None-09423# At least one of the+--     following /must/ be true: --+--     -   The+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState3ProvokingVertexMode extendedDynamicState3ProvokingVertexMode>+--         feature is enabled+--+--     -   The+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>+--         feature is enabled+-- -- -   #VUID-vkCmdSetProvokingVertexModeEXT-provokingVertexMode-07447# If --     @provokingVertexMode@ is --     'Vulkan.Extensions.VK_EXT_provoking_vertex.PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT',@@ -2361,12 +2444,17 @@ -- -- == Valid Usage ----- -   #VUID-vkCmdSetLineRasterizationModeEXT-None-08558# Either the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3LineRasterizationMode extendedDynamicState3LineRasterizationMode>---     feature or the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderObject shaderObject>---     feature or both /must/ be enabled+-- -   #VUID-vkCmdSetLineRasterizationModeEXT-None-09423# At least one of+--     the following /must/ be true: --+--     -   The+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState3LineRasterizationMode extendedDynamicState3LineRasterizationMode>+--         feature is enabled+--+--     -   The+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>+--         feature is enabled+-- -- -   #VUID-vkCmdSetLineRasterizationModeEXT-lineRasterizationMode-07418# --     If @lineRasterizationMode@ is --     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_EXT',@@ -2478,12 +2566,17 @@ -- -- == Valid Usage ----- -   #VUID-vkCmdSetLineStippleEnableEXT-None-08560# Either the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3LineStippleEnable extendedDynamicState3LineStippleEnable>---     feature or the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderObject shaderObject>---     feature or both /must/ be enabled+-- -   #VUID-vkCmdSetLineStippleEnableEXT-None-09423# At least one of the+--     following /must/ be true: --+--     -   The+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState3LineStippleEnable extendedDynamicState3LineStippleEnable>+--         feature is enabled+--+--     -   The+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>+--         feature is enabled+-- -- == Valid Usage (Implicit) -- -- -   #VUID-vkCmdSetLineStippleEnableEXT-commandBuffer-parameter#@@ -2569,12 +2662,17 @@ -- -- == Valid Usage ----- -   #VUID-vkCmdSetDepthClipNegativeOneToOneEXT-None-08586# Either the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3DepthClipNegativeOneToOne extendedDynamicState3DepthClipNegativeOneToOne>---     feature or the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderObject shaderObject>---     feature or both /must/ be enabled+-- -   #VUID-vkCmdSetDepthClipNegativeOneToOneEXT-None-09423# At least one+--     of the following /must/ be true: --+--     -   The+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState3DepthClipNegativeOneToOne extendedDynamicState3DepthClipNegativeOneToOne>+--         feature is enabled+--+--     -   The+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>+--         feature is enabled+-- -- -   #VUID-vkCmdSetDepthClipNegativeOneToOneEXT-depthClipControl-07453# --     The --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-depthClipControl depthClipControl>@@ -2665,12 +2763,17 @@ -- -- == Valid Usage ----- -   #VUID-vkCmdSetViewportWScalingEnableNV-None-08594# Either the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3ViewportWScalingEnable extendedDynamicState3ViewportWScalingEnable>---     feature or the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderObject shaderObject>---     feature or both /must/ be enabled+-- -   #VUID-vkCmdSetViewportWScalingEnableNV-None-09423# At least one of+--     the following /must/ be true: --+--     -   The+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState3ViewportWScalingEnable extendedDynamicState3ViewportWScalingEnable>+--         feature is enabled+--+--     -   The+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>+--         feature is enabled+-- -- == Valid Usage (Implicit) -- -- -   #VUID-vkCmdSetViewportWScalingEnableNV-commandBuffer-parameter#@@ -2760,12 +2863,17 @@ -- -- == Valid Usage ----- -   #VUID-vkCmdSetViewportSwizzleNV-None-08578# Either the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3ViewportSwizzle extendedDynamicState3ViewportSwizzle>---     feature or the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderObject shaderObject>---     feature or both /must/ be enabled+-- -   #VUID-vkCmdSetViewportSwizzleNV-None-09423# At least one of the+--     following /must/ be true: --+--     -   The+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState3ViewportSwizzle extendedDynamicState3ViewportSwizzle>+--         feature is enabled+--+--     -   The+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>+--         feature is enabled+-- -- == Valid Usage (Implicit) -- -- -   #VUID-vkCmdSetViewportSwizzleNV-commandBuffer-parameter#@@ -2872,12 +2980,17 @@ -- -- == Valid Usage ----- -   #VUID-vkCmdSetCoverageToColorEnableNV-None-08524# Either the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3CoverageToColorEnable extendedDynamicState3CoverageToColorEnable>---     feature or the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderObject shaderObject>---     feature or both /must/ be enabled+-- -   #VUID-vkCmdSetCoverageToColorEnableNV-None-09423# At least one of+--     the following /must/ be true: --+--     -   The+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState3CoverageToColorEnable extendedDynamicState3CoverageToColorEnable>+--         feature is enabled+--+--     -   The+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>+--         feature is enabled+-- -- == Valid Usage (Implicit) -- -- -   #VUID-vkCmdSetCoverageToColorEnableNV-commandBuffer-parameter#@@ -2964,12 +3077,17 @@ -- -- == Valid Usage ----- -   #VUID-vkCmdSetCoverageToColorLocationNV-None-08526# Either the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3CoverageToColorLocation extendedDynamicState3CoverageToColorLocation>---     feature or the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderObject shaderObject>---     feature or both /must/ be enabled+-- -   #VUID-vkCmdSetCoverageToColorLocationNV-None-09423# At least one of+--     the following /must/ be true: --+--     -   The+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState3CoverageToColorLocation extendedDynamicState3CoverageToColorLocation>+--         feature is enabled+--+--     -   The+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>+--         feature is enabled+-- -- == Valid Usage (Implicit) -- -- -   #VUID-vkCmdSetCoverageToColorLocationNV-commandBuffer-parameter#@@ -3056,12 +3174,17 @@ -- -- == Valid Usage ----- -   #VUID-vkCmdSetCoverageModulationModeNV-None-08530# Either the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3CoverageModulationMode extendedDynamicState3CoverageModulationMode>---     feature or the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderObject shaderObject>---     feature or both /must/ be enabled+-- -   #VUID-vkCmdSetCoverageModulationModeNV-None-09423# At least one of+--     the following /must/ be true: --+--     -   The+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState3CoverageModulationMode extendedDynamicState3CoverageModulationMode>+--         feature is enabled+--+--     -   The+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>+--         feature is enabled+-- -- == Valid Usage (Implicit) -- -- -   #VUID-vkCmdSetCoverageModulationModeNV-commandBuffer-parameter#@@ -3154,12 +3277,17 @@ -- -- == Valid Usage ----- -   #VUID-vkCmdSetCoverageModulationTableEnableNV-None-08532# Either the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3CoverageModulationTableEnable extendedDynamicState3CoverageModulationTableEnable>---     feature or the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderObject shaderObject>---     feature or both /must/ be enabled+-- -   #VUID-vkCmdSetCoverageModulationTableEnableNV-None-09423# At least+--     one of the following /must/ be true: --+--     -   The+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState3CoverageModulationTableEnable extendedDynamicState3CoverageModulationTableEnable>+--         feature is enabled+--+--     -   The+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>+--         feature is enabled+-- -- == Valid Usage (Implicit) -- -- -   #VUID-vkCmdSetCoverageModulationTableEnableNV-commandBuffer-parameter#@@ -3250,12 +3378,17 @@ -- -- == Valid Usage ----- -   #VUID-vkCmdSetCoverageModulationTableNV-None-08534# Either the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3CoverageModulationTable extendedDynamicState3CoverageModulationTable>---     feature or the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderObject shaderObject>---     feature or both /must/ be enabled+-- -   #VUID-vkCmdSetCoverageModulationTableNV-None-09423# At least one of+--     the following /must/ be true: --+--     -   The+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState3CoverageModulationTable extendedDynamicState3CoverageModulationTable>+--         feature is enabled+--+--     -   The+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>+--         feature is enabled+-- -- == Valid Usage (Implicit) -- -- -   #VUID-vkCmdSetCoverageModulationTableNV-commandBuffer-parameter#@@ -3353,12 +3486,17 @@ -- -- == Valid Usage ----- -   #VUID-vkCmdSetShadingRateImageEnableNV-None-08556# Either the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3ShadingRateImageEnable extendedDynamicState3ShadingRateImageEnable>---     feature or the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderObject shaderObject>---     feature or both /must/ be enabled+-- -   #VUID-vkCmdSetShadingRateImageEnableNV-None-09423# At least one of+--     the following /must/ be true: --+--     -   The+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState3ShadingRateImageEnable extendedDynamicState3ShadingRateImageEnable>+--         feature is enabled+--+--     -   The+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>+--         feature is enabled+-- -- == Valid Usage (Implicit) -- -- -   #VUID-vkCmdSetShadingRateImageEnableNV-commandBuffer-parameter#@@ -3446,12 +3584,17 @@ -- -- == Valid Usage ----- -   #VUID-vkCmdSetCoverageReductionModeNV-None-08528# Either the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3CoverageReductionMode extendedDynamicState3CoverageReductionMode>---     feature or the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderObject shaderObject>---     feature or both /must/ be enabled+-- -   #VUID-vkCmdSetCoverageReductionModeNV-None-09423# At least one of+--     the following /must/ be true: --+--     -   The+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState3CoverageReductionMode extendedDynamicState3CoverageReductionMode>+--         feature is enabled+--+--     -   The+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>+--         feature is enabled+-- -- == Valid Usage (Implicit) -- -- -   #VUID-vkCmdSetCoverageReductionModeNV-commandBuffer-parameter#@@ -3543,12 +3686,16 @@ -- -- == Valid Usage ----- -   #VUID-vkCmdSetRepresentativeFragmentTestEnableNV-None-08522# Either---     the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3RepresentativeFragmentTestEnable extendedDynamicState3RepresentativeFragmentTestEnable>---     feature or the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderObject shaderObject>---     feature or both /must/ be enabled+-- -   #VUID-vkCmdSetRepresentativeFragmentTestEnableNV-None-09423# At+--     least one of the following /must/ be true:+--+--     -   The+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState3RepresentativeFragmentTestEnable extendedDynamicState3RepresentativeFragmentTestEnable>+--         feature is enabled+--+--     -   The+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>+--         feature is enabled -- -- == Valid Usage (Implicit) --
src/Vulkan/Extensions/VK_EXT_extended_dynamic_state3.hs-boot view
@@ -299,7 +299,7 @@ -- 1) What about the VkPipelineMultisampleStateCreateInfo state -- @sampleShadingEnable@ and @minSampleShading@? ----- [UNRESOLVED]+-- [__UNRESOLVED__] -- --     -   @sampleShadingEnable@ and @minSampleShading@ are required when --         compiling the fragment shader, and it is not meaningful to set
src/Vulkan/Extensions/VK_EXT_host_image_copy.hs view
@@ -1240,14 +1240,13 @@ --     /must/ be less than the @mipLevels@ specified in --     'Vulkan.Core10.Image.ImageCreateInfo' when @dstImage@ was created ----- -   #VUID-VkCopyMemoryToImageInfoEXT-imageSubresource-07968# The+-- -   #VUID-VkCopyMemoryToImageInfoEXT-imageSubresource-07968# If+--     @imageSubresource.layerCount@ is not+--     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS', --     @imageSubresource.baseArrayLayer@ + @imageSubresource.layerCount@ of---     each element of @pRegions@ , if @imageSubresource.layerCount@ is not---     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance5 maintenance5>---     is not enabled, /must/ be less than or equal to the @arrayLayers@---     specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @dstImage@---     was created+--     each element of @pRegions@ /must/ be less than or equal to the+--     @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'+--     when @dstImage@ was created -- -- -   #VUID-VkCopyMemoryToImageInfoEXT-dstImage-07969# @dstImage@ /must/ --     not have been created with @flags@ containing@@ -1527,14 +1526,13 @@ --     /must/ be less than the @mipLevels@ specified in --     'Vulkan.Core10.Image.ImageCreateInfo' when @srcImage@ was created ----- -   #VUID-VkCopyImageToMemoryInfoEXT-imageSubresource-07968# The+-- -   #VUID-VkCopyImageToMemoryInfoEXT-imageSubresource-07968# If+--     @imageSubresource.layerCount@ is not+--     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS', --     @imageSubresource.baseArrayLayer@ + @imageSubresource.layerCount@ of---     each element of @pRegions@ , if @imageSubresource.layerCount@ is not---     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance5 maintenance5>---     is not enabled, /must/ be less than or equal to the @arrayLayers@---     specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @srcImage@---     was created+--     each element of @pRegions@ /must/ be less than or equal to the+--     @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'+--     when @srcImage@ was created -- -- -   #VUID-VkCopyImageToMemoryInfoEXT-srcImage-07969# @srcImage@ /must/ --     not have been created with @flags@ containing@@ -1813,14 +1811,13 @@ --     /must/ be less than the @mipLevels@ specified in --     'Vulkan.Core10.Image.ImageCreateInfo' when @srcImage@ was created ----- -   #VUID-VkCopyImageToImageInfoEXT-srcSubresource-07968# The+-- -   #VUID-VkCopyImageToImageInfoEXT-srcSubresource-07968# If+--     @srcSubresource.layerCount@ is not+--     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS', --     @srcSubresource.baseArrayLayer@ + @srcSubresource.layerCount@ of---     each element of @pRegions@ , if @srcSubresource.layerCount@ is not---     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance5 maintenance5>---     is not enabled, /must/ be less than or equal to the @arrayLayers@---     specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @srcImage@---     was created+--     each element of @pRegions@ /must/ be less than or equal to the+--     @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'+--     when @srcImage@ was created -- -- -   #VUID-VkCopyImageToImageInfoEXT-srcImage-07969# @srcImage@ /must/ --     not have been created with @flags@ containing@@ -1956,14 +1953,13 @@ --     /must/ be less than the @mipLevels@ specified in --     'Vulkan.Core10.Image.ImageCreateInfo' when @dstImage@ was created ----- -   #VUID-VkCopyImageToImageInfoEXT-dstSubresource-07968# The+-- -   #VUID-VkCopyImageToImageInfoEXT-dstSubresource-07968# If+--     @dstSubresource.layerCount@ is not+--     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS', --     @dstSubresource.baseArrayLayer@ + @dstSubresource.layerCount@ of---     each element of @pRegions@ , if @dstSubresource.layerCount@ is not---     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' and---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance5 maintenance5>---     is not enabled, /must/ be less than or equal to the @arrayLayers@---     specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @dstImage@---     was created+--     each element of @pRegions@ /must/ be less than or equal to the+--     @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'+--     when @dstImage@ was created -- -- -   #VUID-VkCopyImageToImageInfoEXT-dstImage-07969# @dstImage@ /must/ --     not have been created with @flags@ containing
src/Vulkan/Extensions/VK_EXT_mesh_shader.hs view
@@ -419,11 +419,10 @@ --     <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'+--     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@@ -1025,6 +1024,9 @@ -- -- -   #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',@@ -1033,9 +1035,10 @@ --     command -- -- -   #VUID-vkCmdDrawMeshTasksEXT-None-08618# If a shader object is bound---     to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'---     stage, and the most recent call to+--     to any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current 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'@@ -1047,8 +1050,12 @@ --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT' --     or --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'---     stage, 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/---     have been called in the current command buffer prior to this drawing+--     stage, and the most recent 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@@ -1138,6 +1145,9 @@ -- -- -   #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',@@ -1156,6 +1166,9 @@ -- -- -   #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',@@ -1174,6 +1187,9 @@ -- -- -   #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',@@ -1205,12 +1221,12 @@ -- -- -   #VUID-vkCmdDrawMeshTasksEXT-None-08626# If a shader object is bound --     to any graphics stage, and the most recent call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'---     in the current command buffer set @sampleLocationsEnable@ to---     'Vulkan.Core10.FundamentalTypes.TRUE', and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     'Vulkan.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@@ -1447,16 +1463,22 @@ --     the last call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' ----- -   #VUID-vkCmdDrawMeshTasksEXT-None-09232# If a shader object is bound---     to any graphics stage, and the @VK_NV_clip_space_w_scaling@---     extension is enabled on the device, then+-- -   #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+--     /must/ have been called in the current command buffer prior to this --     drawing command ----- -   #VUID-vkCmdDrawMeshTasksEXT-None-08636# If a shader object is bound---     to any graphics stage, and the @VK_NV_clip_space_w_scaling@---     extension is enabled on the device, then the @viewportCount@+-- -   #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@@ -1489,33 +1511,40 @@ -- -- -   #VUID-vkCmdDrawMeshTasksEXT-shadingRateImage-09233# If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>---     feature is enabled, and the most recent call to+--     feature is enabled, and a shader object is bound to any graphics+--     stage, and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set rasterizerDiscardEnable to+--     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+--     /must/ have been called in the current command buffer prior to this --     drawing command ----- -   #VUID-vkCmdDrawMeshTasksEXT-shadingRateImage-09234# If a shader---     object is bound to any graphics stage, and the+-- -   #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 on the device, and the most recent call to+--     feature is enabled, and a shader object is bound to any graphics+--     stage, and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set rasterizerDiscardEnable to+--     in 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+--     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+--     /must/ have been called in the current command buffer prior to this --     drawing command ----- -   #VUID-vkCmdDrawMeshTasksEXT-None-08637# If a shader object is bound---     to any graphics stage, and the+-- -   #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 on the device, then the @viewportCount@ parameter---     in the last call to+--     feature is enabled, and a shader object is bound to any graphics+--     stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in 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@@ -1563,16 +1592,18 @@ --     /must/ have been called in the current command buffer prior to this --     drawing command ----- -   #VUID-vkCmdDrawMeshTasksEXT-exclusiveScissor-09235# If a shader---     object is bound to any graphics stage, and the+-- -   #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, then+--     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+--     /must/ have been called in the current command buffer prior to this --     drawing command ----- -   #VUID-vkCmdDrawMeshTasksEXT-None-08638# If a shader object is bound---     to any graphics stage, and the most recent call to+-- -   #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',@@ -1624,12 +1655,12 @@ -- -   #VUID-vkCmdDrawMeshTasksEXT-None-08641# If a shader object is bound --     to the --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'---     stage, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>---     feature is enabled on the device, and the most recent call to+--     stage, and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     '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@@ -1672,7 +1703,9 @@ --     'Vulkan.Core10.FundamentalTypes.FALSE' -- -- -   #VUID-vkCmdDrawMeshTasksEXT-None-08643# If a shader object is bound---     to any graphics stage, and the most recent call to+--     to the+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'+--     stage, and the most recent call 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@@ -2033,7 +2066,10 @@ --     object is bound to any graphics stage, and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     '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@@ -2536,7 +2572,9 @@ --     drawing command -- -- -   #VUID-vkCmdDrawMeshTasksEXT-None-08658# If a shader object is bound---     to any graphics stage, and the most recent call to+--     to the+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'+--     stage, and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     in the current command buffer set @rasterizerDiscardEnable@ to --     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to@@ -2667,6 +2705,20 @@ --     /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'@@ -2679,7 +2731,10 @@ --     @VK_EXT_provoking_vertex@ extension is enabled, and a shader object --     is bound to the --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'---     stage, then+--     stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_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@@ -2695,6 +2750,9 @@ -- -   #VUID-vkCmdDrawMeshTasksEXT-None-08666# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader --     object is bound to any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in 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@@ -2704,7 +2762,12 @@ -- -- -   #VUID-vkCmdDrawMeshTasksEXT-None-08667# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader---     object is bound to the vertex stage, and the most recent call to+--     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@@ -2714,8 +2777,14 @@ -- -- -   #VUID-vkCmdDrawMeshTasksEXT-None-08668# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader---     object that outputs line primitives is bound to the tessellation---     evaluation or geometry stage, then+--     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@@ -2731,6 +2800,9 @@ -- -   #VUID-vkCmdDrawMeshTasksEXT-None-08669# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader --     object is bound to any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in 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@@ -2740,7 +2812,12 @@ -- -- -   #VUID-vkCmdDrawMeshTasksEXT-None-08670# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader---     object is bound to the vertex stage, and the most recent call to+--     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@@ -2750,8 +2827,14 @@ -- -- -   #VUID-vkCmdDrawMeshTasksEXT-None-08671# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader---     object that outputs line primitives is bound to the tessellation---     evaluation or geometry stage, then+--     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@@ -2767,6 +2850,9 @@ -- -   #VUID-vkCmdDrawMeshTasksEXT-None-08672# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader --     object is bound to any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in 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@@ -2853,6 +2939,9 @@ --     shader object is bound to the --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' --     stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in 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@@ -2940,7 +3029,7 @@ --     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+--     /must/ have been called in the current command buffer prior to this --     drawing command -- -- -   #VUID-vkCmdDrawMeshTasksEXT-None-08681# If the@@ -3071,6 +3160,21 @@ --     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'@@ -3083,6 +3187,21 @@ --     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'@@ -3095,6 +3214,21 @@ --     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'@@ -3155,8 +3289,10 @@ --     to --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' ----- -   #VUID-vkCmdDrawMeshTasksEXT-sampleLocationsEnable-07484# If the---     bound graphics pipeline was created with the+-- -   #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@@ -3166,8 +3302,10 @@ --     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT' --     bit set ----- -   #VUID-vkCmdDrawMeshTasksEXT-sampleLocationsEnable-07485# If the---     bound graphics pipeline state was created with the+-- -   #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'@@ -3183,8 +3321,10 @@ --     'Vulkan.Extensions.VK_EXT_sample_locations.getPhysicalDeviceMultisamplePropertiesEXT' --     with a @samples@ parameter equaling @rasterizationSamples@ ----- -   #VUID-vkCmdDrawMeshTasksEXT-sampleLocationsEnable-07486# If the---     bound graphics pipeline state was created with the+-- -   #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'@@ -3200,8 +3340,10 @@ --     'Vulkan.Extensions.VK_EXT_sample_locations.getPhysicalDeviceMultisamplePropertiesEXT' --     with a @samples@ parameter equaling @rasterizationSamples@ ----- -   #VUID-vkCmdDrawMeshTasksEXT-sampleLocationsEnable-07487# If the---     bound graphics pipeline state was created with the+-- -   #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@@ -3264,9 +3406,10 @@ --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' -- -- -   #VUID-vkCmdDrawMeshTasksEXT-coverageModulationTableEnable-07488# If---     the bound graphics pipeline state was created with the+--     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+--     state enabled, and the last call to --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV' --     set @coverageModulationTableEnable@ to --     'Vulkan.Core10.FundamentalTypes.TRUE', then the@@ -3301,6 +3444,29 @@ --     '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@@ -3337,6 +3503,15 @@ --     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@@@ -3592,15 +3767,15 @@ --     and a fragment shader is bound, it /must/ not declare the --     @DepthReplacing@ or @StencilRefReplacingEXT@ execution modes ----- -   #VUID-vkCmdDrawMeshTasksEXT-None-08880# If a shader object is bound---     to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'---     stage and the+-- -   #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 the most recent call to+--     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'+--     '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@@ -3938,11 +4113,10 @@ --     <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'+--     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@@ -4551,6 +4725,9 @@ -- -- -   #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',@@ -4559,9 +4736,10 @@ --     command -- -- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08618# If a shader object---     is bound to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'---     stage, and the most recent call to+--     is bound to any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current 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'@@ -4573,8 +4751,12 @@ --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT' --     or --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'---     stage, 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/---     have been called in the current command buffer prior to this drawing+--     stage, and the most recent 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@@ -4664,6 +4846,9 @@ -- -- -   #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',@@ -4682,6 +4867,9 @@ -- -- -   #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',@@ -4700,6 +4888,9 @@ -- -- -   #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',@@ -4731,12 +4922,12 @@ -- -- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08626# If a shader object --     is bound to any graphics stage, and the most recent call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'---     in the current command buffer set @sampleLocationsEnable@ to---     'Vulkan.Core10.FundamentalTypes.TRUE', and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     'Vulkan.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@@ -4973,16 +5164,22 @@ --     the last call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' ----- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-09232# If a shader object---     is bound to any graphics stage, and the @VK_NV_clip_space_w_scaling@---     extension is enabled on the device, then+-- -   #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+--     /must/ have been called in the current command buffer prior to this --     drawing command ----- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08636# If a shader object---     is bound to any graphics stage, and the @VK_NV_clip_space_w_scaling@---     extension is enabled on the device, then the @viewportCount@+-- -   #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@@ -5015,33 +5212,40 @@ -- -- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-shadingRateImage-09233# If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>---     feature is enabled, and the most recent call to+--     feature is enabled, and a shader object is bound to any graphics+--     stage, and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set rasterizerDiscardEnable to+--     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+--     /must/ have been called in the current command buffer prior to this --     drawing command ----- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-shadingRateImage-09234# If a---     shader object is bound to any graphics stage, and the+-- -   #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 on the device, and the most recent call to+--     feature is enabled, and a shader object is bound to any graphics+--     stage, and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set rasterizerDiscardEnable to+--     in 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+--     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+--     /must/ have been called in the current command buffer prior to this --     drawing command ----- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08637# If a shader object---     is bound to any graphics stage, and the+-- -   #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 on the device, then the @viewportCount@ parameter---     in the last call to+--     feature is enabled, and a shader object is bound to any graphics+--     stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in 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@@ -5089,16 +5293,18 @@ --     /must/ have been called in the current command buffer prior to this --     drawing command ----- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-exclusiveScissor-09235# If a---     shader object is bound to any graphics stage, and the+-- -   #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, then+--     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+--     /must/ have been called in the current command buffer prior to this --     drawing command ----- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08638# If a shader object---     is bound to any graphics stage, and the most recent call to+-- -   #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',@@ -5150,12 +5356,12 @@ -- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08641# If a shader object --     is bound to the --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'---     stage, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>---     feature is enabled on the device, and the most recent call to+--     stage, and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     '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@@ -5199,7 +5405,9 @@ --     'Vulkan.Core10.FundamentalTypes.FALSE' -- -- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08643# If a shader object---     is bound to any graphics stage, and the most recent call to+--     is bound to the+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'+--     stage, and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     in the current command buffer set @rasterizerDiscardEnable@ to --     'Vulkan.Core10.FundamentalTypes.FALSE', then for each color@@ -5561,7 +5769,10 @@ --     call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     '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@@ -6065,7 +6276,9 @@ --     drawing command -- -- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08658# If a shader object---     is bound to any graphics stage, and the most recent call to+--     is bound to the+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'+--     stage, and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     in the current command buffer set @rasterizerDiscardEnable@ to --     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to@@ -6196,6 +6409,20 @@ --     /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'@@ -6208,7 +6435,10 @@ --     @VK_EXT_provoking_vertex@ extension is enabled, and a shader object --     is bound to the --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'---     stage, then+--     stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_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@@ -6224,6 +6454,9 @@ -- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08666# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader --     object is bound to any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in 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@@ -6233,7 +6466,12 @@ -- -- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08667# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader---     object is bound to the vertex stage, and the most recent call to+--     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@@ -6243,8 +6481,14 @@ -- -- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08668# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader---     object that outputs line primitives is bound to the tessellation---     evaluation or geometry stage, then+--     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@@ -6260,6 +6504,9 @@ -- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08669# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader --     object is bound to any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in 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@@ -6269,7 +6516,12 @@ -- -- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08670# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader---     object is bound to the vertex stage, and the most recent call to+--     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@@ -6279,8 +6531,14 @@ -- -- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08671# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader---     object that outputs line primitives is bound to the tessellation---     evaluation or geometry stage, then+--     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@@ -6296,6 +6554,9 @@ -- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08672# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader --     object is bound to any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in 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@@ -6382,6 +6643,9 @@ --     shader object is bound to the --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' --     stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in 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@@ -6469,7 +6733,7 @@ --     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+--     /must/ have been called in the current command buffer prior to this --     drawing command -- -- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08681# If the@@ -6600,6 +6864,21 @@ --     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'@@ -6612,6 +6891,21 @@ --     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'@@ -6624,6 +6918,21 @@ --     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'@@ -6685,7 +6994,9 @@ --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' -- -- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-sampleLocationsEnable-07484# If---     the bound graphics pipeline was created with the+--     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@@ -6696,7 +7007,9 @@ --     bit set -- -- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-sampleLocationsEnable-07485# If---     the bound graphics pipeline state was created with the+--     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'@@ -6713,7 +7026,9 @@ --     with a @samples@ parameter equaling @rasterizationSamples@ -- -- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-sampleLocationsEnable-07486# If---     the bound graphics pipeline state was created with the+--     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'@@ -6730,7 +7045,9 @@ --     with a @samples@ parameter equaling @rasterizationSamples@ -- -- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-sampleLocationsEnable-07487# If---     the bound graphics pipeline state was created with the+--     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@@ -6793,9 +7110,10 @@ --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' -- -- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-coverageModulationTableEnable-07488#---     If the bound graphics pipeline state was created with the+--     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+--     state enabled, and the last call to --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV' --     set @coverageModulationTableEnable@ to --     'Vulkan.Core10.FundamentalTypes.TRUE', then the@@ -6830,6 +7148,29 @@ --     '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@@ -6866,6 +7207,15 @@ --     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@@ -7121,15 +7471,15 @@ --     and a fragment shader is bound, it /must/ not declare the --     @DepthReplacing@ or @StencilRefReplacingEXT@ execution modes ----- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08880# If a shader object---     is bound to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'---     stage and the+-- -   #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 the most recent call to+--     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'+--     '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@@ -7457,11 +7807,10 @@ --     <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'+--     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@@ -8071,6 +8420,9 @@ -- -- -   #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',@@ -8079,9 +8431,10 @@ --     command -- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08618# If a shader---     object is bound to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'---     stage, and the most recent call to+--     object is bound to any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current 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'@@ -8093,8 +8446,12 @@ --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT' --     or --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'---     stage, 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/---     have been called in the current command buffer prior to this drawing+--     stage, and the most recent 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@@ -8184,6 +8541,9 @@ -- -- -   #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',@@ -8202,6 +8562,9 @@ -- -- -   #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',@@ -8220,6 +8583,9 @@ -- -- -   #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',@@ -8251,12 +8617,12 @@ -- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08626# If a shader --     object is bound to any graphics stage, and the most recent call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'---     in the current command buffer set @sampleLocationsEnable@ to---     'Vulkan.Core10.FundamentalTypes.TRUE', and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     'Vulkan.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@@ -8493,18 +8859,23 @@ --     the last call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' ----- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09232# If a shader---     object is bound to any graphics stage, and the---     @VK_NV_clip_space_w_scaling@ extension is enabled on the device,---     then+-- -   #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+--     /must/ have been called in the current command buffer prior to this --     drawing command ----- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08636# If a shader---     object is bound to any graphics stage, and the---     @VK_NV_clip_space_w_scaling@ extension is enabled on the device,---     then the @viewportCount@ parameter in the last call to+-- -   #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@@ -8537,33 +8908,41 @@ -- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-shadingRateImage-09233# If --     the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>---     feature is enabled, and the most recent call to+--     feature is enabled, and a shader object is bound to any graphics+--     stage, and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set rasterizerDiscardEnable to+--     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+--     /must/ have been called in the current command buffer prior to this --     drawing command -- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-shadingRateImage-09234# If---     a shader object is bound to any graphics stage, and the+--     the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>---     feature is enabled on the device, and the most recent call to+--     feature is enabled, and a shader object is bound to any graphics+--     stage, and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set rasterizerDiscardEnable to+--     in 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+--     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+--     /must/ have been called in the current command buffer prior to this --     drawing command ----- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08637# If a shader---     object is bound to any graphics stage, and the+-- -   #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 on the device, then the @viewportCount@ parameter---     in the last call to+--     feature is enabled, and a shader object is bound to any graphics+--     stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in 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@@ -8612,15 +8991,18 @@ --     drawing command -- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-exclusiveScissor-09235# If---     a shader object is bound to any graphics stage, and the+--     the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-exclusiveScissor exclusiveScissor>---     feature is enabled, then+--     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+--     /must/ have been called in the current command buffer prior to this --     drawing command ----- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08638# If a shader---     object is bound to any graphics stage, and the most recent call to+-- -   #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',@@ -8672,12 +9054,12 @@ -- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08641# If a shader --     object is bound to the --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'---     stage, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>---     feature is enabled on the device, and the most recent call to+--     stage, and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     '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@@ -8721,7 +9103,9 @@ --     'Vulkan.Core10.FundamentalTypes.FALSE' -- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08643# If a shader---     object is bound to any graphics stage, and the most recent call to+--     object is bound to the+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'+--     stage, and the most recent call 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@@ -9083,7 +9467,10 @@ --     call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     '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@@ -9587,7 +9974,9 @@ --     drawing command -- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08658# If a shader---     object is bound to any graphics stage, and the most recent call to+--     object is bound to the+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'+--     stage, and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     in the current command buffer set @rasterizerDiscardEnable@ to --     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to@@ -9718,6 +10107,20 @@ --     /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'@@ -9730,7 +10133,10 @@ --     @VK_EXT_provoking_vertex@ extension is enabled, and a shader object --     is bound to the --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'---     stage, then+--     stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_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@@ -9746,6 +10152,9 @@ -- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08666# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader --     object is bound to any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in 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@@ -9755,7 +10164,12 @@ -- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08667# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader---     object is bound to the vertex stage, and the most recent call to+--     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@@ -9765,8 +10179,14 @@ -- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08668# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader---     object that outputs line primitives is bound to the tessellation---     evaluation or geometry stage, then+--     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@@ -9782,6 +10202,9 @@ -- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08669# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader --     object is bound to any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in 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@@ -9791,7 +10214,12 @@ -- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08670# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader---     object is bound to the vertex stage, and the most recent call to+--     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@@ -9801,8 +10229,14 @@ -- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08671# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader---     object that outputs line primitives is bound to the tessellation---     evaluation or geometry stage, then+--     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@@ -9818,6 +10252,9 @@ -- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08672# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader --     object is bound to any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in 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@@ -9904,6 +10341,9 @@ --     shader object is bound to the --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' --     stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in 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@@ -9991,7 +10431,7 @@ --     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+--     /must/ have been called in the current command buffer prior to this --     drawing command -- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08681# If the@@ -10122,6 +10562,21 @@ --     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'@@ -10134,6 +10589,21 @@ --     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'@@ -10146,6 +10616,21 @@ --     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'@@ -10207,7 +10692,9 @@ --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' -- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-sampleLocationsEnable-07484#---     If the bound graphics pipeline was created with the+--     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@@ -10218,7 +10705,9 @@ --     bit set -- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-sampleLocationsEnable-07485#---     If the bound graphics pipeline state was created with the+--     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'@@ -10235,7 +10724,9 @@ --     with a @samples@ parameter equaling @rasterizationSamples@ -- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-sampleLocationsEnable-07486#---     If the bound graphics pipeline state was created with the+--     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'@@ -10252,7 +10743,9 @@ --     with a @samples@ parameter equaling @rasterizationSamples@ -- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-sampleLocationsEnable-07487#---     If the bound graphics pipeline state was created with the+--     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@@ -10315,9 +10808,10 @@ --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' -- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-coverageModulationTableEnable-07488#---     If the bound graphics pipeline state was created with the+--     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+--     state enabled, and the last call to --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV' --     set @coverageModulationTableEnable@ to --     'Vulkan.Core10.FundamentalTypes.TRUE', then the@@ -10352,6 +10846,29 @@ --     '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@@ -10388,6 +10905,15 @@ --     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@@ -10643,15 +11169,15 @@ --     and a fragment shader is bound, it /must/ not declare the --     @DepthReplacing@ or @StencilRefReplacingEXT@ execution modes ----- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08880# If a shader---     object is bound to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'---     stage and the+-- -   #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 the most recent call to+--     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'+--     '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
src/Vulkan/Extensions/VK_EXT_multi_draw.hs view
@@ -293,11 +293,10 @@ --     <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'+--     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@@ -897,6 +896,9 @@ -- -- -   #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',@@ -905,9 +907,10 @@ --     command -- -- -   #VUID-vkCmdDrawMultiEXT-None-08618# If a shader object is bound to---     the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'---     stage, and the most recent call to+--     any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current 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'@@ -919,8 +922,12 @@ --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT' --     or --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'---     stage, 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/---     have been called in the current command buffer prior to this drawing+--     stage, and the most recent 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@@ -1010,6 +1017,9 @@ -- -- -   #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',@@ -1028,6 +1038,9 @@ -- -- -   #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',@@ -1046,6 +1059,9 @@ -- -- -   #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',@@ -1077,12 +1093,12 @@ -- -- -   #VUID-vkCmdDrawMultiEXT-None-08626# If a shader object is bound to --     any graphics stage, and the most recent call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'---     in the current command buffer set @sampleLocationsEnable@ to---     'Vulkan.Core10.FundamentalTypes.TRUE', and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     'Vulkan.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@@ -1319,17 +1335,23 @@ --     the last call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' ----- -   #VUID-vkCmdDrawMultiEXT-None-09232# If a shader object is bound to---     any graphics stage, and the @VK_NV_clip_space_w_scaling@ extension---     is enabled on the device, then+-- -   #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+--     /must/ have been called in the current command buffer prior to this --     drawing command ----- -   #VUID-vkCmdDrawMultiEXT-None-08636# If a shader object is bound to---     any graphics stage, and the @VK_NV_clip_space_w_scaling@ extension---     is enabled on the device, then the @viewportCount@ parameter in the---     last call to+-- -   #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@@ -1361,33 +1383,40 @@ -- -- -   #VUID-vkCmdDrawMultiEXT-shadingRateImage-09233# If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>---     feature is enabled, and the most recent call to+--     feature is enabled, and a shader object is bound to any graphics+--     stage, and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set rasterizerDiscardEnable to+--     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+--     /must/ have been called in the current command buffer prior to this --     drawing command ----- -   #VUID-vkCmdDrawMultiEXT-shadingRateImage-09234# If a shader object---     is bound to any graphics stage, and the+-- -   #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 on the device, and the most recent call to+--     feature is enabled, and a shader object is bound to any graphics+--     stage, and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set rasterizerDiscardEnable to+--     in 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+--     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+--     /must/ have been called in the current command buffer prior to this --     drawing command ----- -   #VUID-vkCmdDrawMultiEXT-None-08637# If a shader object is bound to---     any graphics stage, and the+-- -   #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 on the device, then the @viewportCount@ parameter---     in the last call to+--     feature is enabled, and a shader object is bound to any graphics+--     stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in 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@@ -1435,16 +1464,18 @@ --     /must/ have been called in the current command buffer prior to this --     drawing command ----- -   #VUID-vkCmdDrawMultiEXT-exclusiveScissor-09235# If a shader object---     is bound to any graphics stage, and the+-- -   #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, then+--     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+--     /must/ have been called in the current command buffer prior to this --     drawing command ----- -   #VUID-vkCmdDrawMultiEXT-None-08638# If a shader object is bound to---     any graphics stage, and the most recent call to+-- -   #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',@@ -1496,12 +1527,12 @@ -- -   #VUID-vkCmdDrawMultiEXT-None-08641# If a shader object is bound to --     the --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'---     stage, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>---     feature is enabled on the device, and the most recent call to+--     stage, and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     '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@@ -1544,7 +1575,9 @@ --     'Vulkan.Core10.FundamentalTypes.FALSE' -- -- -   #VUID-vkCmdDrawMultiEXT-None-08643# If a shader object is bound to---     any graphics stage, and the most recent call to+--     the+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'+--     stage, and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     in the current command buffer set @rasterizerDiscardEnable@ to --     'Vulkan.Core10.FundamentalTypes.FALSE', then for each color@@ -1905,7 +1938,10 @@ --     object is bound to any graphics stage, and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     '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@@ -2408,7 +2444,9 @@ --     drawing command -- -- -   #VUID-vkCmdDrawMultiEXT-None-08658# If a shader object is bound to---     any graphics stage, and the most recent call to+--     the+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'+--     stage, and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     in the current command buffer set @rasterizerDiscardEnable@ to --     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to@@ -2539,6 +2577,20 @@ --     /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'@@ -2550,7 +2602,10 @@ -- -   #VUID-vkCmdDrawMultiEXT-None-08665# If the @VK_EXT_provoking_vertex@ --     extension is enabled, and a shader object is bound to the --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'---     stage, then+--     stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_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@@ -2566,6 +2621,9 @@ -- -   #VUID-vkCmdDrawMultiEXT-None-08666# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader --     object is bound to any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in 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@@ -2575,7 +2633,12 @@ -- -- -   #VUID-vkCmdDrawMultiEXT-None-08667# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader---     object is bound to the vertex stage, and the most recent call to+--     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@@ -2585,8 +2648,14 @@ -- -- -   #VUID-vkCmdDrawMultiEXT-None-08668# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader---     object that outputs line primitives is bound to the tessellation---     evaluation or geometry stage, then+--     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@@ -2602,6 +2671,9 @@ -- -   #VUID-vkCmdDrawMultiEXT-None-08669# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader --     object is bound to any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in 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@@ -2611,7 +2683,12 @@ -- -- -   #VUID-vkCmdDrawMultiEXT-None-08670# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader---     object is bound to the vertex stage, and the most recent call to+--     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@@ -2621,8 +2698,14 @@ -- -- -   #VUID-vkCmdDrawMultiEXT-None-08671# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader---     object that outputs line primitives is bound to the tessellation---     evaluation or geometry stage, then+--     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@@ -2638,6 +2721,9 @@ -- -   #VUID-vkCmdDrawMultiEXT-None-08672# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader --     object is bound to any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in 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@@ -2724,6 +2810,9 @@ --     shader object is bound to the --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' --     stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in 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@@ -2810,7 +2899,7 @@ --     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+--     /must/ have been called in the current command buffer prior to this --     drawing command -- -- -   #VUID-vkCmdDrawMultiEXT-None-08681# If the@@ -2941,6 +3030,21 @@ --     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'@@ -2953,6 +3057,21 @@ --     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'@@ -2965,6 +3084,21 @@ --     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'@@ -3025,8 +3159,10 @@ --     to --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' ----- -   #VUID-vkCmdDrawMultiEXT-sampleLocationsEnable-07484# If the bound---     graphics pipeline was created with the+-- -   #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@@ -3036,8 +3172,10 @@ --     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT' --     bit set ----- -   #VUID-vkCmdDrawMultiEXT-sampleLocationsEnable-07485# If the bound---     graphics pipeline state was created with the+-- -   #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'@@ -3053,8 +3191,10 @@ --     'Vulkan.Extensions.VK_EXT_sample_locations.getPhysicalDeviceMultisamplePropertiesEXT' --     with a @samples@ parameter equaling @rasterizationSamples@ ----- -   #VUID-vkCmdDrawMultiEXT-sampleLocationsEnable-07486# If the bound---     graphics pipeline state was created with the+-- -   #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'@@ -3070,8 +3210,10 @@ --     'Vulkan.Extensions.VK_EXT_sample_locations.getPhysicalDeviceMultisamplePropertiesEXT' --     with a @samples@ parameter equaling @rasterizationSamples@ ----- -   #VUID-vkCmdDrawMultiEXT-sampleLocationsEnable-07487# If the bound---     graphics pipeline state was created with the+-- -   #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@@ -3133,10 +3275,11 @@ --     /must/ equal @rasterizationSamples@ in the last call to --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' ----- -   #VUID-vkCmdDrawMultiEXT-coverageModulationTableEnable-07488# If the---     bound graphics pipeline state was created with the+-- -   #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+--     state enabled, and the last call to --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV' --     set @coverageModulationTableEnable@ to --     'Vulkan.Core10.FundamentalTypes.TRUE', then the@@ -3171,6 +3314,29 @@ --     '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@@ -3207,6 +3373,15 @@ --     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@@@ -3460,15 +3635,15 @@ --     and a fragment shader is bound, it /must/ not declare the --     @DepthReplacing@ or @StencilRefReplacingEXT@ execution modes ----- -   #VUID-vkCmdDrawMultiEXT-None-08880# If a shader object is bound to+-- -   #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---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFeedbackLoopDynamicState attachmentFeedbackLoopDynamicState>---     feature is enabled on the device, and the most recent call to+--     stage, and the most recent 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.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@@ -3559,8 +3734,10 @@ --     within the corresponding vertex buffer binding, as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input ???> ----- -   #VUID-vkCmdDrawMultiEXT-None-07842# If the bound graphics pipeline---     state was created with the+-- -   #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'@@ -3603,110 +3780,94 @@ --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT' --     /must/ not be @NULL@ ----- -   #VUID-vkCmdDrawMultiEXT-None-08881# If a shader object is bound to---     the+-- -   #VUID-vkCmdDrawMultiEXT-None-04914# If there is a shader object+--     bound to the --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'---     stage, then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawMultiEXT-None-04914# If the bound graphics pipeline---     state was created with the+--     stage or the bound graphics pipeline state was created with the --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'---     dynamic state enabled, then+--     dynamic state enabled then --     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT' --     /must/ have been called in the current command buffer prior to this --     draw command ----- -   #VUID-vkCmdDrawMultiEXT-Input-07939# If the bound graphics pipeline---     state was created with the+-- -   #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+--     dynamic state enabled then all variables with the @Input@ storage --     class decorated with @Location@ in the @Vertex@ @Execution@ @Model@ --     @OpEntryPoint@ /must/ contain a location in --     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@location@ ----- -   #VUID-vkCmdDrawMultiEXT-Input-08734# If the bound graphics pipeline---     state was created with the+-- -   #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+--     dynamic state enabled then the numeric type associated with all --     @Input@ variables of the corresponding @Location@ in the @Vertex@ --     @Execution@ @Model@ @OpEntryPoint@ /must/ be the same as --     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@ -- -- -   #VUID-vkCmdDrawMultiEXT-format-08936# If there is a shader object---     bound to a graphics stage or the currently bound graphics pipeline---     was created with the+--     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+--     dynamic state enabled and --     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@ --     has a 64-bit component, then the scalar width associated with all --     @Input@ variables of the corresponding @Location@ in the @Vertex@ --     @Execution@ @Model@ @OpEntryPoint@ /must/ be 64-bit -- -- -   #VUID-vkCmdDrawMultiEXT-format-08937# If there is a shader object---     bound to a graphics stage or the currently bound graphics pipeline---     was created with the+--     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+--     dynamic state enabled and the scalar width associated with a --     @Location@ decorated @Input@ variable in the @Vertex@ @Execution@ --     @Model@ @OpEntryPoint@ is 64-bit, then the corresponding --     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@ --     /must/ have a 64-bit component -- -- -   #VUID-vkCmdDrawMultiEXT-None-09203# If there is a shader object---     bound to a graphics stage or the currently bound graphics pipeline---     was created with the+--     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+--     dynamic state enabled and --     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@ --     has a 64-bit component, then all @Input@ variables at the --     corresponding @Location@ in the @Vertex@ @Execution@ @Model@ --     @OpEntryPoint@ /must/ not use components that are not present in the --     format ----- -   #VUID-vkCmdDrawMultiEXT-None-08882# If a shader object is bound to---     the+-- -   #VUID-vkCmdDrawMultiEXT-None-04875# If there is a shader object+--     bound to the --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'---     stage, then---     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawMultiEXT-None-04875# If the bound graphics pipeline---     state was created with the+--     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-08883# If a shader object is bound to---     the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'---     stage, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawMultiEXT-None-04879# If the bound graphics pipeline---     state was created with the+-- -   #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-rasterizerDiscardEnable-08884# If a shader---     object is bound to any graphics stage, and the most recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE',---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnable'---     /must/ have been called in the current command buffer prior to this---     drawing command--- -- -   #VUID-vkCmdDrawMultiEXT-stage-06481# The bound graphics pipeline --     /must/ not have been created with the --     'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@@@ -3929,11 +4090,10 @@ --     <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'+--     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@@ -4535,6 +4695,9 @@ -- -- -   #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',@@ -4543,9 +4706,10 @@ --     command -- -- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08618# If a shader object is---     bound to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'---     stage, and the most recent call to+--     bound to any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current 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'@@ -4557,8 +4721,12 @@ --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT' --     or --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'---     stage, 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/---     have been called in the current command buffer prior to this drawing+--     stage, and the most recent 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@@ -4648,6 +4816,9 @@ -- -- -   #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',@@ -4666,6 +4837,9 @@ -- -- -   #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',@@ -4684,6 +4858,9 @@ -- -- -   #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',@@ -4715,12 +4892,12 @@ -- -- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08626# If a shader object is --     bound to any graphics stage, and the most recent call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'---     in the current command buffer set @sampleLocationsEnable@ to---     'Vulkan.Core10.FundamentalTypes.TRUE', and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     'Vulkan.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@@ -4957,16 +5134,22 @@ --     the last call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' ----- -   #VUID-vkCmdDrawMultiIndexedEXT-None-09232# If a shader object is---     bound to any graphics stage, and the @VK_NV_clip_space_w_scaling@---     extension is enabled on the device, then+-- -   #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+--     /must/ have been called in the current command buffer prior to this --     drawing command ----- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08636# If a shader object is---     bound to any graphics stage, and the @VK_NV_clip_space_w_scaling@---     extension is enabled on the device, then the @viewportCount@+-- -   #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@@ -4999,33 +5182,40 @@ -- -- -   #VUID-vkCmdDrawMultiIndexedEXT-shadingRateImage-09233# If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>---     feature is enabled, and the most recent call to+--     feature is enabled, and a shader object is bound to any graphics+--     stage, and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set rasterizerDiscardEnable to+--     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+--     /must/ have been called in the current command buffer prior to this --     drawing command ----- -   #VUID-vkCmdDrawMultiIndexedEXT-shadingRateImage-09234# If a shader---     object is bound to any graphics stage, and the+-- -   #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 on the device, and the most recent call to+--     feature is enabled, and a shader object is bound to any graphics+--     stage, and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set rasterizerDiscardEnable to+--     in 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+--     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+--     /must/ have been called in the current command buffer prior to this --     drawing command ----- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08637# If a shader object is---     bound to any graphics stage, and the+-- -   #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 on the device, then the @viewportCount@ parameter---     in the last call to+--     feature is enabled, and a shader object is bound to any graphics+--     stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in 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@@ -5073,16 +5263,18 @@ --     /must/ have been called in the current command buffer prior to this --     drawing command ----- -   #VUID-vkCmdDrawMultiIndexedEXT-exclusiveScissor-09235# If a shader---     object is bound to any graphics stage, and the+-- -   #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, then+--     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+--     /must/ have been called in the current command buffer prior to this --     drawing command ----- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08638# If a shader object is---     bound to any graphics stage, and the most recent call to+-- -   #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',@@ -5134,12 +5326,12 @@ -- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08641# If a shader object is --     bound to the --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'---     stage, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>---     feature is enabled on the device, and the most recent call to+--     stage, and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     '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@@ -5182,7 +5374,9 @@ --     'Vulkan.Core10.FundamentalTypes.FALSE' -- -- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08643# If a shader object is---     bound to any graphics stage, and the most recent call to+--     bound to the+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'+--     stage, and the most recent call 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@@ -5543,7 +5737,10 @@ --     object is bound to any graphics stage, and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     '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@@ -6047,7 +6244,9 @@ --     drawing command -- -- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08658# If a shader object is---     bound to any graphics stage, and the most recent call to+--     bound to the+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'+--     stage, and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     in the current command buffer set @rasterizerDiscardEnable@ to --     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to@@ -6178,6 +6377,20 @@ --     /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'@@ -6190,7 +6403,10 @@ --     @VK_EXT_provoking_vertex@ extension is enabled, and a shader object --     is bound to the --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'---     stage, then+--     stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_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@@ -6206,6 +6422,9 @@ -- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08666# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader --     object is bound to any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in 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@@ -6215,7 +6434,12 @@ -- -- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08667# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader---     object is bound to the vertex stage, and the most recent call to+--     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@@ -6225,8 +6449,14 @@ -- -- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08668# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader---     object that outputs line primitives is bound to the tessellation---     evaluation or geometry stage, then+--     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@@ -6242,6 +6472,9 @@ -- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08669# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader --     object is bound to any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in 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@@ -6251,7 +6484,12 @@ -- -- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08670# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader---     object is bound to the vertex stage, and the most recent call to+--     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@@ -6261,8 +6499,14 @@ -- -- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08671# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader---     object that outputs line primitives is bound to the tessellation---     evaluation or geometry stage, then+--     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@@ -6278,6 +6522,9 @@ -- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08672# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader --     object is bound to any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in 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@@ -6364,6 +6611,9 @@ --     shader object is bound to the --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' --     stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in 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@@ -6451,7 +6701,7 @@ --     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+--     /must/ have been called in the current command buffer prior to this --     drawing command -- -- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08681# If the@@ -6582,6 +6832,21 @@ --     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'@@ -6594,6 +6859,21 @@ --     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'@@ -6606,6 +6886,21 @@ --     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'@@ -6666,8 +6961,10 @@ --     to --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' ----- -   #VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsEnable-07484# If the---     bound graphics pipeline was created with the+-- -   #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@@ -6677,8 +6974,10 @@ --     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT' --     bit set ----- -   #VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsEnable-07485# If the---     bound graphics pipeline state was created with the+-- -   #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'@@ -6694,8 +6993,10 @@ --     'Vulkan.Extensions.VK_EXT_sample_locations.getPhysicalDeviceMultisamplePropertiesEXT' --     with a @samples@ parameter equaling @rasterizationSamples@ ----- -   #VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsEnable-07486# If the---     bound graphics pipeline state was created with the+-- -   #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'@@ -6711,8 +7012,10 @@ --     'Vulkan.Extensions.VK_EXT_sample_locations.getPhysicalDeviceMultisamplePropertiesEXT' --     with a @samples@ parameter equaling @rasterizationSamples@ ----- -   #VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsEnable-07487# If the---     bound graphics pipeline state was created with the+-- -   #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@@ -6775,9 +7078,10 @@ --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' -- -- -   #VUID-vkCmdDrawMultiIndexedEXT-coverageModulationTableEnable-07488#---     If the bound graphics pipeline state was created with the+--     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+--     state enabled, and the last call to --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV' --     set @coverageModulationTableEnable@ to --     'Vulkan.Core10.FundamentalTypes.TRUE', then the@@ -6812,6 +7116,29 @@ --     '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@@ -6848,6 +7175,15 @@ --     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@@@ -7103,15 +7439,15 @@ --     and a fragment shader is bound, it /must/ not declare the --     @DepthReplacing@ or @StencilRefReplacingEXT@ execution modes ----- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08880# If a shader object is---     bound to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'---     stage and the+-- -   #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 the most recent call to+--     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'+--     '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@@ -7205,8 +7541,10 @@ --     within the corresponding vertex buffer binding, as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input ???> ----- -   #VUID-vkCmdDrawMultiIndexedEXT-None-07842# If the bound graphics---     pipeline state was created with the+-- -   #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'@@ -7249,107 +7587,90 @@ --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT' --     /must/ not be @NULL@ ----- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08881# If a shader object is---     bound to the+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-04914# If there is a shader+--     object bound to the --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'---     stage, then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawMultiIndexedEXT-None-04914# If the bound graphics---     pipeline state was created with the+--     stage or the bound graphics pipeline state was created with the --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'---     dynamic state enabled, then+--     dynamic state enabled then --     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT' --     /must/ have been called in the current command buffer prior to this --     draw command ----- -   #VUID-vkCmdDrawMultiIndexedEXT-Input-07939# If the bound graphics---     pipeline state was created with the+-- -   #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+--     dynamic state enabled then all variables with the @Input@ storage --     class decorated with @Location@ in the @Vertex@ @Execution@ @Model@ --     @OpEntryPoint@ /must/ contain a location in --     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@location@ ----- -   #VUID-vkCmdDrawMultiIndexedEXT-Input-08734# If the bound graphics---     pipeline state was created with the+-- -   #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+--     dynamic state enabled then the numeric type associated with all --     @Input@ variables of the corresponding @Location@ in the @Vertex@ --     @Execution@ @Model@ @OpEntryPoint@ /must/ be the same as --     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@ -- -- -   #VUID-vkCmdDrawMultiIndexedEXT-format-08936# If there is a shader---     object bound to a graphics stage or the currently bound graphics---     pipeline was created with the+--     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+--     dynamic state enabled and --     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@ --     has a 64-bit component, then the scalar width associated with all --     @Input@ variables of the corresponding @Location@ in the @Vertex@ --     @Execution@ @Model@ @OpEntryPoint@ /must/ be 64-bit -- -- -   #VUID-vkCmdDrawMultiIndexedEXT-format-08937# If there is a shader---     object bound to a graphics stage or the currently bound graphics---     pipeline was created with the+--     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+--     dynamic state enabled and the scalar width associated with a --     @Location@ decorated @Input@ variable in the @Vertex@ @Execution@ --     @Model@ @OpEntryPoint@ is 64-bit, then the corresponding --     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@ --     /must/ have a 64-bit component -- -- -   #VUID-vkCmdDrawMultiIndexedEXT-None-09203# If there is a shader---     object bound to a graphics stage or the currently bound graphics---     pipeline was created with the+--     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+--     dynamic state enabled and --     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@ --     has a 64-bit component, then all @Input@ variables at the --     corresponding @Location@ in the @Vertex@ @Execution@ @Model@ --     @OpEntryPoint@ /must/ not use components that are not present in the --     format ----- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08882# If a shader object is---     bound to the+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-04875# If there is a shader+--     object bound to the --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'---     stage, then---     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawMultiIndexedEXT-None-04875# If the bound graphics---     pipeline state was created with the+--     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-08883# If a shader object is---     bound to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'---     stage, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawMultiIndexedEXT-None-04879# If the bound graphics---     pipeline state was created with the+-- -   #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-rasterizerDiscardEnable-08884# If a---     shader object is bound to any graphics stage, and the most recent---     call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnable' --     /must/ have been called in the current command buffer prior to this --     drawing command
src/Vulkan/Extensions/VK_EXT_shader_object.hs view
@@ -1919,6 +1919,16 @@ --     feature is not enabled, @flags@ /must/ not include --     'SHADER_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT' --+-- -   #VUID-VkShaderCreateInfoEXT-flags-09404# If @flags@ includes+--     'SHADER_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT', the+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-subgroupSizeControl subgroupSizeControl>+--     feature /must/ be enabled+--+-- -   #VUID-VkShaderCreateInfoEXT-flags-09405# If @flags@ includes+--     'SHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT', the+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-computeFullSubgroups computeFullSubgroups>+--     feature /must/ be enabled+-- -- -   #VUID-VkShaderCreateInfoEXT-flags-08992# If @flags@ includes --     'SHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT', @stage@ /must/ be --     one of
src/Vulkan/Extensions/VK_EXT_transform_feedback.hs view
@@ -1038,6 +1038,13 @@ --     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'@@ -1057,13 +1064,6 @@ --     <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-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-06693# If the @queryType@ --     used to create @queryPool@ was --     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'@@ -1522,11 +1522,10 @@ --     <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'+--     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@@ -2135,6 +2134,9 @@ -- -- -   #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',@@ -2143,9 +2145,10 @@ --     command -- -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08618# If a shader object---     is bound to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'---     stage, and the most recent call to+--     is bound to any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current 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'@@ -2157,8 +2160,12 @@ --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT' --     or --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'---     stage, 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/---     have been called in the current command buffer prior to this drawing+--     stage, and the most recent 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@@ -2248,6 +2255,9 @@ -- -- -   #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',@@ -2266,6 +2276,9 @@ -- -- -   #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',@@ -2284,6 +2297,9 @@ -- -- -   #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',@@ -2315,12 +2331,12 @@ -- -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08626# If a shader object --     is bound to any graphics stage, and the most recent call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'---     in the current command buffer set @sampleLocationsEnable@ to---     'Vulkan.Core10.FundamentalTypes.TRUE', and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     'Vulkan.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@@ -2557,16 +2573,22 @@ --     the last call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' ----- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-09232# If a shader object---     is bound to any graphics stage, and the @VK_NV_clip_space_w_scaling@---     extension is enabled on the device, then+-- -   #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+--     /must/ have been called in the current command buffer prior to this --     drawing command ----- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08636# If a shader object---     is bound to any graphics stage, and the @VK_NV_clip_space_w_scaling@---     extension is enabled on the device, then the @viewportCount@+-- -   #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@@ -2599,33 +2621,40 @@ -- -- -   #VUID-vkCmdDrawIndirectByteCountEXT-shadingRateImage-09233# If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>---     feature is enabled, and the most recent call to+--     feature is enabled, and a shader object is bound to any graphics+--     stage, and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set rasterizerDiscardEnable to+--     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+--     /must/ have been called in the current command buffer prior to this --     drawing command ----- -   #VUID-vkCmdDrawIndirectByteCountEXT-shadingRateImage-09234# If a---     shader object is bound to any graphics stage, and the+-- -   #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 on the device, and the most recent call to+--     feature is enabled, and a shader object is bound to any graphics+--     stage, and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set rasterizerDiscardEnable to+--     in 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+--     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+--     /must/ have been called in the current command buffer prior to this --     drawing command ----- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08637# If a shader object---     is bound to any graphics stage, and the+-- -   #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 on the device, then the @viewportCount@ parameter---     in the last call to+--     feature is enabled, and a shader object is bound to any graphics+--     stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in 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@@ -2673,16 +2702,18 @@ --     /must/ have been called in the current command buffer prior to this --     drawing command ----- -   #VUID-vkCmdDrawIndirectByteCountEXT-exclusiveScissor-09235# If a---     shader object is bound to any graphics stage, and the+-- -   #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, then+--     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+--     /must/ have been called in the current command buffer prior to this --     drawing command ----- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08638# If a shader object---     is bound to any graphics stage, and the most recent call to+-- -   #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',@@ -2734,12 +2765,12 @@ -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08641# If a shader object --     is bound to the --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'---     stage, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>---     feature is enabled on the device, and the most recent call to+--     stage, and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     '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@@ -2783,7 +2814,9 @@ --     'Vulkan.Core10.FundamentalTypes.FALSE' -- -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08643# If a shader object---     is bound to any graphics stage, and the most recent call to+--     is bound to the+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'+--     stage, and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     in the current command buffer set @rasterizerDiscardEnable@ to --     'Vulkan.Core10.FundamentalTypes.FALSE', then for each color@@ -3145,7 +3178,10 @@ --     call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     '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@@ -3649,7 +3685,9 @@ --     drawing command -- -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08658# If a shader object---     is bound to any graphics stage, and the most recent call to+--     is bound to the+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'+--     stage, and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     in the current command buffer set @rasterizerDiscardEnable@ to --     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to@@ -3780,6 +3818,20 @@ --     /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'@@ -3792,7 +3844,10 @@ --     @VK_EXT_provoking_vertex@ extension is enabled, and a shader object --     is bound to the --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'---     stage, then+--     stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_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@@ -3808,6 +3863,9 @@ -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08666# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader --     object is bound to any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in 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@@ -3817,7 +3875,12 @@ -- -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08667# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader---     object is bound to the vertex stage, and the most recent call to+--     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@@ -3827,8 +3890,14 @@ -- -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08668# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader---     object that outputs line primitives is bound to the tessellation---     evaluation or geometry stage, then+--     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@@ -3844,6 +3913,9 @@ -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08669# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader --     object is bound to any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in 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@@ -3853,7 +3925,12 @@ -- -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08670# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader---     object is bound to the vertex stage, and the most recent call to+--     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@@ -3863,8 +3940,14 @@ -- -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08671# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader---     object that outputs line primitives is bound to the tessellation---     evaluation or geometry stage, then+--     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@@ -3880,6 +3963,9 @@ -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08672# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader --     object is bound to any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in 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@@ -3966,6 +4052,9 @@ --     shader object is bound to the --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' --     stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in 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@@ -4053,7 +4142,7 @@ --     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+--     /must/ have been called in the current command buffer prior to this --     drawing command -- -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08681# If the@@ -4184,6 +4273,21 @@ --     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'@@ -4196,6 +4300,21 @@ --     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'@@ -4208,6 +4327,21 @@ --     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'@@ -4269,7 +4403,9 @@ --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' -- -- -   #VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsEnable-07484# If---     the bound graphics pipeline was created with the+--     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@@ -4280,7 +4416,9 @@ --     bit set -- -- -   #VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsEnable-07485# If---     the bound graphics pipeline state was created with the+--     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'@@ -4297,7 +4435,9 @@ --     with a @samples@ parameter equaling @rasterizationSamples@ -- -- -   #VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsEnable-07486# If---     the bound graphics pipeline state was created with the+--     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'@@ -4314,7 +4454,9 @@ --     with a @samples@ parameter equaling @rasterizationSamples@ -- -- -   #VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsEnable-07487# If---     the bound graphics pipeline state was created with the+--     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@@ -4377,9 +4519,10 @@ --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' -- -- -   #VUID-vkCmdDrawIndirectByteCountEXT-coverageModulationTableEnable-07488#---     If the bound graphics pipeline state was created with the+--     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+--     state enabled, and the last call to --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV' --     set @coverageModulationTableEnable@ to --     'Vulkan.Core10.FundamentalTypes.TRUE', then the@@ -4414,6 +4557,29 @@ --     '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@@ -4450,6 +4616,15 @@ --     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@@ -4705,15 +4880,15 @@ --     and a fragment shader is bound, it /must/ not declare the --     @DepthReplacing@ or @StencilRefReplacingEXT@ execution modes ----- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08880# If a shader object---     is bound to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'---     stage and the+-- -   #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 the most recent call to+--     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'+--     '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@@ -4786,8 +4961,10 @@ --     described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input ???> ----- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-07842# If the bound---     graphics pipeline state was created with the+-- -   #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'@@ -4830,107 +5007,90 @@ --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT' --     /must/ not be @NULL@ ----- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08881# If a shader object---     is bound to the+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-04914# If there is a shader+--     object bound to the --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'---     stage, then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirectByteCountEXT-None-04914# If the bound---     graphics pipeline state was created with the+--     stage or the bound graphics pipeline state was created with the --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'---     dynamic state enabled, then+--     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 the bound---     graphics pipeline state was created with the+-- -   #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+--     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 the bound---     graphics pipeline state was created with the+-- -   #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+--     dynamic state enabled then the numeric type associated with all --     @Input@ variables of the corresponding @Location@ in the @Vertex@ --     @Execution@ @Model@ @OpEntryPoint@ /must/ be the same as --     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@ -- -- -   #VUID-vkCmdDrawIndirectByteCountEXT-format-08936# If there is a---     shader object bound to a graphics stage or the currently bound---     graphics pipeline was created with the+--     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+--     dynamic state enabled and --     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@ --     has a 64-bit component, then the scalar width associated with all --     @Input@ variables of the corresponding @Location@ in the @Vertex@ --     @Execution@ @Model@ @OpEntryPoint@ /must/ be 64-bit -- -- -   #VUID-vkCmdDrawIndirectByteCountEXT-format-08937# If there is a---     shader object bound to a graphics stage or the currently bound---     graphics pipeline was created with the+--     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+--     dynamic state enabled and the scalar width associated with a --     @Location@ decorated @Input@ variable in the @Vertex@ @Execution@ --     @Model@ @OpEntryPoint@ is 64-bit, then the corresponding --     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@ --     /must/ have a 64-bit component -- -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-09203# If there is a shader---     object bound to a graphics stage or the currently bound graphics---     pipeline was created with the+--     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+--     dynamic state enabled and --     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@ --     has a 64-bit component, then all @Input@ variables at the --     corresponding @Location@ in the @Vertex@ @Execution@ @Model@ --     @OpEntryPoint@ /must/ not use components that are not present in the --     format ----- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08882# If a shader object---     is bound to the+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-04875# If there is a shader+--     object bound to the --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'---     stage, then---     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirectByteCountEXT-None-04875# If the bound---     graphics pipeline state was created with the+--     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-08883# If a shader object---     is bound to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'---     stage, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawIndirectByteCountEXT-None-04879# If the bound---     graphics pipeline state was created with the+-- -   #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-rasterizerDiscardEnable-08884#---     If a shader object is bound to any graphics stage, and the most---     recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnable' --     /must/ have been called in the current command buffer prior to this --     drawing command
src/Vulkan/Extensions/VK_HUAWEI_cluster_culling_shader.hs view
@@ -534,11 +534,10 @@ --     <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'+--     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@@ -1140,6 +1139,9 @@ -- -- -   #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',@@ -1148,9 +1150,10 @@ --     command -- -- -   #VUID-vkCmdDrawClusterHUAWEI-None-08618# If a shader object is bound---     to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'---     stage, and the most recent call to+--     to any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current 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'@@ -1162,8 +1165,12 @@ --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT' --     or --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'---     stage, 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/---     have been called in the current command buffer prior to this drawing+--     stage, and the most recent 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@@ -1253,6 +1260,9 @@ -- -- -   #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',@@ -1271,6 +1281,9 @@ -- -- -   #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',@@ -1289,6 +1302,9 @@ -- -- -   #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',@@ -1320,12 +1336,12 @@ -- -- -   #VUID-vkCmdDrawClusterHUAWEI-None-08626# If a shader object is bound --     to any graphics stage, and the most recent call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'---     in the current command buffer set @sampleLocationsEnable@ to---     'Vulkan.Core10.FundamentalTypes.TRUE', and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     'Vulkan.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@@ -1562,16 +1578,22 @@ --     the last call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' ----- -   #VUID-vkCmdDrawClusterHUAWEI-None-09232# If a shader object is bound---     to any graphics stage, and the @VK_NV_clip_space_w_scaling@---     extension is enabled on the device, then+-- -   #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+--     /must/ have been called in the current command buffer prior to this --     drawing command ----- -   #VUID-vkCmdDrawClusterHUAWEI-None-08636# If a shader object is bound---     to any graphics stage, and the @VK_NV_clip_space_w_scaling@---     extension is enabled on the device, then the @viewportCount@+-- -   #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@@ -1604,33 +1626,40 @@ -- -- -   #VUID-vkCmdDrawClusterHUAWEI-shadingRateImage-09233# If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>---     feature is enabled, and the most recent call to+--     feature is enabled, and a shader object is bound to any graphics+--     stage, and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set rasterizerDiscardEnable to+--     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+--     /must/ have been called in the current command buffer prior to this --     drawing command ----- -   #VUID-vkCmdDrawClusterHUAWEI-shadingRateImage-09234# If a shader---     object is bound to any graphics stage, and the+-- -   #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 on the device, and the most recent call to+--     feature is enabled, and a shader object is bound to any graphics+--     stage, and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set rasterizerDiscardEnable to+--     in 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+--     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+--     /must/ have been called in the current command buffer prior to this --     drawing command ----- -   #VUID-vkCmdDrawClusterHUAWEI-None-08637# If a shader object is bound---     to any graphics stage, and the+-- -   #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 on the device, then the @viewportCount@ parameter---     in the last call to+--     feature is enabled, and a shader object is bound to any graphics+--     stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in 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@@ -1678,16 +1707,18 @@ --     /must/ have been called in the current command buffer prior to this --     drawing command ----- -   #VUID-vkCmdDrawClusterHUAWEI-exclusiveScissor-09235# If a shader---     object is bound to any graphics stage, and the+-- -   #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, then+--     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+--     /must/ have been called in the current command buffer prior to this --     drawing command ----- -   #VUID-vkCmdDrawClusterHUAWEI-None-08638# If a shader object is bound---     to any graphics stage, and the most recent call to+-- -   #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',@@ -1739,12 +1770,12 @@ -- -   #VUID-vkCmdDrawClusterHUAWEI-None-08641# If a shader object is bound --     to the --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'---     stage, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>---     feature is enabled on the device, and the most recent call to+--     stage, and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     '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@@ -1787,7 +1818,9 @@ --     'Vulkan.Core10.FundamentalTypes.FALSE' -- -- -   #VUID-vkCmdDrawClusterHUAWEI-None-08643# If a shader object is bound---     to any graphics stage, and the most recent call to+--     to the+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'+--     stage, and the most recent call 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@@ -2148,7 +2181,10 @@ --     object is bound to any graphics stage, and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     '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@@ -2652,7 +2688,9 @@ --     drawing command -- -- -   #VUID-vkCmdDrawClusterHUAWEI-None-08658# If a shader object is bound---     to any graphics stage, and the most recent call to+--     to the+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'+--     stage, and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     in the current command buffer set @rasterizerDiscardEnable@ to --     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to@@ -2783,6 +2821,20 @@ --     /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'@@ -2795,7 +2847,10 @@ --     @VK_EXT_provoking_vertex@ extension is enabled, and a shader object --     is bound to the --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'---     stage, then+--     stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_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@@ -2811,6 +2866,9 @@ -- -   #VUID-vkCmdDrawClusterHUAWEI-None-08666# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader --     object is bound to any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in 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@@ -2820,7 +2878,12 @@ -- -- -   #VUID-vkCmdDrawClusterHUAWEI-None-08667# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader---     object is bound to the vertex stage, and the most recent call to+--     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@@ -2830,8 +2893,14 @@ -- -- -   #VUID-vkCmdDrawClusterHUAWEI-None-08668# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader---     object that outputs line primitives is bound to the tessellation---     evaluation or geometry stage, then+--     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@@ -2847,6 +2916,9 @@ -- -   #VUID-vkCmdDrawClusterHUAWEI-None-08669# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader --     object is bound to any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in 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@@ -2856,7 +2928,12 @@ -- -- -   #VUID-vkCmdDrawClusterHUAWEI-None-08670# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader---     object is bound to the vertex stage, and the most recent call to+--     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@@ -2866,8 +2943,14 @@ -- -- -   #VUID-vkCmdDrawClusterHUAWEI-None-08671# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader---     object that outputs line primitives is bound to the tessellation---     evaluation or geometry stage, then+--     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@@ -2883,6 +2966,9 @@ -- -   #VUID-vkCmdDrawClusterHUAWEI-None-08672# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader --     object is bound to any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in 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@@ -2969,6 +3055,9 @@ --     shader object is bound to the --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' --     stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in 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@@ -3056,7 +3145,7 @@ --     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+--     /must/ have been called in the current command buffer prior to this --     drawing command -- -- -   #VUID-vkCmdDrawClusterHUAWEI-None-08681# If the@@ -3187,6 +3276,21 @@ --     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'@@ -3199,6 +3303,21 @@ --     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'@@ -3211,6 +3330,21 @@ --     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'@@ -3271,8 +3405,10 @@ --     to --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' ----- -   #VUID-vkCmdDrawClusterHUAWEI-sampleLocationsEnable-07484# If the---     bound graphics pipeline was created with the+-- -   #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@@ -3282,8 +3418,10 @@ --     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT' --     bit set ----- -   #VUID-vkCmdDrawClusterHUAWEI-sampleLocationsEnable-07485# If the---     bound graphics pipeline state was created with the+-- -   #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'@@ -3299,8 +3437,10 @@ --     'Vulkan.Extensions.VK_EXT_sample_locations.getPhysicalDeviceMultisamplePropertiesEXT' --     with a @samples@ parameter equaling @rasterizationSamples@ ----- -   #VUID-vkCmdDrawClusterHUAWEI-sampleLocationsEnable-07486# If the---     bound graphics pipeline state was created with the+-- -   #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'@@ -3316,8 +3456,10 @@ --     'Vulkan.Extensions.VK_EXT_sample_locations.getPhysicalDeviceMultisamplePropertiesEXT' --     with a @samples@ parameter equaling @rasterizationSamples@ ----- -   #VUID-vkCmdDrawClusterHUAWEI-sampleLocationsEnable-07487# If the---     bound graphics pipeline state was created with the+-- -   #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@@ -3380,9 +3522,10 @@ --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' -- -- -   #VUID-vkCmdDrawClusterHUAWEI-coverageModulationTableEnable-07488# If---     the bound graphics pipeline state was created with the+--     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+--     state enabled, and the last call to --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV' --     set @coverageModulationTableEnable@ to --     'Vulkan.Core10.FundamentalTypes.TRUE', then the@@ -3417,6 +3560,29 @@ --     '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@@ -3453,6 +3619,15 @@ --     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@@@ -3708,15 +3883,15 @@ --     and a fragment shader is bound, it /must/ not declare the --     @DepthReplacing@ or @StencilRefReplacingEXT@ execution modes ----- -   #VUID-vkCmdDrawClusterHUAWEI-None-08880# If a shader object is bound---     to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'---     stage and the+-- -   #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 the most recent call to+--     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'+--     '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@@ -4017,11 +4192,10 @@ --     <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'+--     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@@ -4630,6 +4804,9 @@ -- -- -   #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',@@ -4638,9 +4815,10 @@ --     command -- -- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08618# If a shader object---     is bound to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'---     stage, and the most recent call to+--     is bound to any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current 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'@@ -4652,8 +4830,12 @@ --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT' --     or --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'---     stage, 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/---     have been called in the current command buffer prior to this drawing+--     stage, and the most recent 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@@ -4743,6 +4925,9 @@ -- -- -   #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',@@ -4761,6 +4946,9 @@ -- -- -   #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',@@ -4779,6 +4967,9 @@ -- -- -   #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',@@ -4810,12 +5001,12 @@ -- -- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08626# If a shader object --     is bound to any graphics stage, and the most recent call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'---     in the current command buffer set @sampleLocationsEnable@ to---     'Vulkan.Core10.FundamentalTypes.TRUE', and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     'Vulkan.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@@ -5052,16 +5243,22 @@ --     the last call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' ----- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-09232# If a shader object---     is bound to any graphics stage, and the @VK_NV_clip_space_w_scaling@---     extension is enabled on the device, then+-- -   #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+--     /must/ have been called in the current command buffer prior to this --     drawing command ----- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08636# If a shader object---     is bound to any graphics stage, and the @VK_NV_clip_space_w_scaling@---     extension is enabled on the device, then the @viewportCount@+-- -   #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@@ -5094,33 +5291,40 @@ -- -- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-shadingRateImage-09233# If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>---     feature is enabled, and the most recent call to+--     feature is enabled, and a shader object is bound to any graphics+--     stage, and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set rasterizerDiscardEnable to+--     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+--     /must/ have been called in the current command buffer prior to this --     drawing command ----- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-shadingRateImage-09234# If a---     shader object is bound to any graphics stage, and the+-- -   #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 on the device, and the most recent call to+--     feature is enabled, and a shader object is bound to any graphics+--     stage, and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set rasterizerDiscardEnable to+--     in 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+--     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+--     /must/ have been called in the current command buffer prior to this --     drawing command ----- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08637# If a shader object---     is bound to any graphics stage, and the+-- -   #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 on the device, then the @viewportCount@ parameter---     in the last call to+--     feature is enabled, and a shader object is bound to any graphics+--     stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in 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@@ -5168,16 +5372,18 @@ --     /must/ have been called in the current command buffer prior to this --     drawing command ----- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-exclusiveScissor-09235# If a---     shader object is bound to any graphics stage, and the+-- -   #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, then+--     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+--     /must/ have been called in the current command buffer prior to this --     drawing command ----- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08638# If a shader object---     is bound to any graphics stage, and the most recent call to+-- -   #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',@@ -5229,12 +5435,12 @@ -- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08641# If a shader object --     is bound to the --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'---     stage, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>---     feature is enabled on the device, and the most recent call to+--     stage, and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     '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@@ -5278,7 +5484,9 @@ --     'Vulkan.Core10.FundamentalTypes.FALSE' -- -- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08643# If a shader object---     is bound to any graphics stage, and the most recent call to+--     is bound to the+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'+--     stage, and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     in the current command buffer set @rasterizerDiscardEnable@ to --     'Vulkan.Core10.FundamentalTypes.FALSE', then for each color@@ -5640,7 +5848,10 @@ --     call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     '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@@ -6144,7 +6355,9 @@ --     drawing command -- -- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08658# If a shader object---     is bound to any graphics stage, and the most recent call to+--     is bound to the+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'+--     stage, and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     in the current command buffer set @rasterizerDiscardEnable@ to --     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to@@ -6275,6 +6488,20 @@ --     /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'@@ -6287,7 +6514,10 @@ --     @VK_EXT_provoking_vertex@ extension is enabled, and a shader object --     is bound to the --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'---     stage, then+--     stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_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@@ -6303,6 +6533,9 @@ -- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08666# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader --     object is bound to any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in 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@@ -6312,7 +6545,12 @@ -- -- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08667# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader---     object is bound to the vertex stage, and the most recent call to+--     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@@ -6322,8 +6560,14 @@ -- -- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08668# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader---     object that outputs line primitives is bound to the tessellation---     evaluation or geometry stage, then+--     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@@ -6339,6 +6583,9 @@ -- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08669# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader --     object is bound to any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in 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@@ -6348,7 +6595,12 @@ -- -- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08670# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader---     object is bound to the vertex stage, and the most recent call to+--     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@@ -6358,8 +6610,14 @@ -- -- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08671# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader---     object that outputs line primitives is bound to the tessellation---     evaluation or geometry stage, then+--     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@@ -6375,6 +6633,9 @@ -- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08672# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader --     object is bound to any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in 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@@ -6461,6 +6722,9 @@ --     shader object is bound to the --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' --     stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in 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@@ -6548,7 +6812,7 @@ --     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+--     /must/ have been called in the current command buffer prior to this --     drawing command -- -- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08681# If the@@ -6679,6 +6943,21 @@ --     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'@@ -6691,6 +6970,21 @@ --     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'@@ -6703,6 +6997,21 @@ --     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'@@ -6764,7 +7073,9 @@ --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' -- -- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-sampleLocationsEnable-07484# If---     the bound graphics pipeline was created with the+--     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@@ -6775,7 +7086,9 @@ --     bit set -- -- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-sampleLocationsEnable-07485# If---     the bound graphics pipeline state was created with the+--     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'@@ -6792,7 +7105,9 @@ --     with a @samples@ parameter equaling @rasterizationSamples@ -- -- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-sampleLocationsEnable-07486# If---     the bound graphics pipeline state was created with the+--     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'@@ -6809,7 +7124,9 @@ --     with a @samples@ parameter equaling @rasterizationSamples@ -- -- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-sampleLocationsEnable-07487# If---     the bound graphics pipeline state was created with the+--     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@@ -6872,9 +7189,10 @@ --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' -- -- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-coverageModulationTableEnable-07488#---     If the bound graphics pipeline state was created with the+--     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+--     state enabled, and the last call to --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV' --     set @coverageModulationTableEnable@ to --     'Vulkan.Core10.FundamentalTypes.TRUE', then the@@ -6909,6 +7227,29 @@ --     '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@@ -6945,6 +7286,15 @@ --     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@@ -7200,15 +7550,15 @@ --     and a fragment shader is bound, it /must/ not declare the --     @DepthReplacing@ or @StencilRefReplacingEXT@ execution modes ----- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08880# If a shader object---     is bound to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'---     stage and the+-- -   #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 the most recent call to+--     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'+--     '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
src/Vulkan/Extensions/VK_HUAWEI_subpass_shading.hs view
@@ -594,11 +594,10 @@ --     <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'+--     a result of this command /must/ not have a+--     'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'::@reductionMode@+--     equal to+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM' -- -- -   #VUID-vkCmdSubpassShadingHUAWEI-reductionMode-09213# Any --     'Vulkan.Core10.Handles.ImageView' being sampled with a
src/Vulkan/Extensions/VK_KHR_buffer_device_address.hs view
@@ -101,28 +101,9 @@ -- when the trace was captured. To enable tools to insert these queries, -- new memory allocation flags must be specified for memory objects that -- will be bound to buffers accessed via the @PhysicalStorageBuffer@--- storage class. Note that this mechanism is intended only to support+-- storage class. __Note that this mechanism is intended only to support -- capture\/replay tools, and is not recommended for use in other--- applications.------ There are various use cases this extension is designed for. It is--- required for ray tracing, useful for DX12 portability, and by allowing--- buffer addresses to be stored in memory it enables more complex data--- structures to be created.------ This extension can also be used to hardcode a dedicated debug channel--- into all shaders by querying a pointer at startup and pushing that into--- shaders as a run-time constant (e.g. specialization constant) that--- avoids impacting other descriptor limits.------ There are examples of usage in the--- <https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GLSL_EXT_buffer_reference.txt GL_EXT_buffer_reference>--- spec for how to use this in a high-level shading language such as GLSL.--- The--- <https://github.com/KhronosGroup/GLSL/blob/master/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>--- extensions were also added to help cover a few additional edge cases.+-- applications.__ -- -- == Promotion to Vulkan 1.2 --
src/Vulkan/Extensions/VK_KHR_ray_tracing_maintenance1.hs view
@@ -358,11 +358,10 @@ --     <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'+--     a result of this command /must/ not have a+--     'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'::@reductionMode@+--     equal to+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM' -- -- -   #VUID-vkCmdTraceRaysIndirect2KHR-reductionMode-09213# Any --     'Vulkan.Core10.Handles.ImageView' being sampled with a
src/Vulkan/Extensions/VK_KHR_ray_tracing_pipeline.hs view
@@ -981,11 +981,10 @@ --     <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'+--     a result of this command /must/ not have a+--     'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'::@reductionMode@+--     equal to+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM' -- -- -   #VUID-vkCmdTraceRaysKHR-reductionMode-09213# Any --     'Vulkan.Core10.Handles.ImageView' being sampled with a@@ -2279,11 +2278,10 @@ --     <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'+--     a result of this command /must/ not have a+--     'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'::@reductionMode@+--     equal to+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM' -- -- -   #VUID-vkCmdTraceRaysIndirectKHR-reductionMode-09213# Any --     'Vulkan.Core10.Handles.ImageView' being sampled with a
src/Vulkan/Extensions/VK_NV_copy_memory_indirect.hs view
@@ -529,11 +529,11 @@ -- 'Vulkan.Core10.FundamentalTypes.DeviceAddress', -- 'Vulkan.Core10.FundamentalTypes.DeviceSize' data CopyMemoryIndirectCommandNV = CopyMemoryIndirectCommandNV-  { -- | @srcAddress@ is the starting address of the source host or device memory-    -- to copy from.+  { -- | @srcAddress@ is the starting address of the source device memory to copy+    -- from.     srcAddress :: DeviceAddress-  , -- | @dstAddress@ is the starting address of the destination host or device-    -- memory to copy to.+  , -- | @dstAddress@ is the starting address of the destination device memory to+    -- copy to.     dstAddress :: DeviceAddress   , -- | @size@ is the size of the copy in bytes.     size :: DeviceSize@@ -618,8 +618,8 @@ -- 'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers', -- 'Vulkan.Core10.FundamentalTypes.Offset3D' data CopyMemoryToImageIndirectCommandNV = CopyMemoryToImageIndirectCommandNV-  { -- | @srcAddress@ is the starting address of the source host or device memory-    -- to copy from.+  { -- | @srcAddress@ is the starting address of the source device memory to copy+    -- from.     srcAddress :: DeviceAddress   , -- | @bufferRowLength@ and @bufferImageHeight@ specify in texels a subregion     -- of a larger two- or three-dimensional image in buffer memory, and
+ src/Vulkan/Extensions/VK_NV_cuda_kernel_launch.hs view
@@ -0,0 +1,1203 @@+{-# language CPP #-}+-- | = Name+--+-- VK_NV_cuda_kernel_launch - device extension+--+-- == VK_NV_cuda_kernel_launch+--+-- [__Name String__]+--     @VK_NV_cuda_kernel_launch@+--+-- [__Extension Type__]+--     Device extension+--+-- [__Registered Extension Number__]+--     308+--+-- [__Revision__]+--     2+--+-- [__Ratification Status__]+--     Not ratified+--+-- [__Extension and Version Dependencies__]+--+--     -   __This is a /provisional/ extension and /must/ be used with+--         caution. See the+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#boilerplate-provisional-header description>+--         of provisional header files for enablement and stability+--         details.__+--+-- [__Contact__]+--+--     -   Tristan Lorach+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_NV_cuda_kernel_launch] @tlorach%0A*Here describe the issue or question you have about the VK_NV_cuda_kernel_launch extension* >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+--     2020-09-30+--+-- [__Contributors__]+--+--     -   Eric Werness, NVIDIA+--+-- == Description+--+-- Interoperability between APIs can sometimes create additional overhead+-- depending on the platform used. This extension targets deployment of+-- existing CUDA kernels via Vulkan, with a way to directly upload PTX+-- kernels and dispatch the kernels from Vulkan’s command buffer without+-- the need to use interoperability between the Vulkan and CUDA contexts.+-- However, we do encourage actual development using the native CUDA+-- runtime for the purpose of debugging and profiling.+--+-- The application will first have to create a CUDA module using+-- 'createCudaModuleNV' then create the CUDA function entry point with+-- 'createCudaFunctionNV'.+--+-- Then in order to dispatch this function, the application will create a+-- command buffer where it will launch the kernel with+-- 'cmdCudaLaunchKernelNV'.+--+-- When done, the application will then destroy the function handle, as+-- well as the CUDA module handle with 'destroyCudaFunctionNV' and+-- 'destroyCudaModuleNV'.+--+-- To reduce the impact of compilation time, this extension offers the+-- capability to return a binary cache from the PTX that was provided. For+-- this, a first query for the required cache size is made with+-- '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+-- sending this cache instead of the PTX code (using the same+-- 'createCudaModuleNV'), thus significantly speeding up the initialization+-- of the CUDA module.+--+-- As with 'Vulkan.Core10.Handles.PipelineCache', the binary cache depends+-- on the hardware architecture. Therefore the application must assume the+-- cache might fail, and thus need to handle falling back to the original+-- PTX code as necessary. Most often, the cache will succeed if the same+-- GPU driver and architecture is used between the cache generation from+-- PTX and the use of this cache. But most often, in the event of a new+-- driver version or a if using a different GPU But in the event of a new+-- driver version or if using a different GPU architecture, the cache is+-- likely to become invalid.+--+-- == New Object Types+--+-- -   'Vulkan.Extensions.Handles.CudaFunctionNV'+--+-- -   'Vulkan.Extensions.Handles.CudaModuleNV'+--+-- == New Commands+--+-- -   'cmdCudaLaunchKernelNV'+--+-- -   'createCudaFunctionNV'+--+-- -   'createCudaModuleNV'+--+-- -   'destroyCudaFunctionNV'+--+-- -   'destroyCudaModuleNV'+--+-- -   'getCudaModuleCacheNV'+--+-- == New Structures+--+-- -   'CudaFunctionCreateInfoNV'+--+-- -   'CudaLaunchInfoNV'+--+-- -   'CudaModuleCreateInfoNV'+--+-- -   Extending+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+--     'Vulkan.Core10.Device.DeviceCreateInfo':+--+--     -   'PhysicalDeviceCudaKernelLaunchFeaturesNV'+--+-- -   Extending+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':+--+--     -   'PhysicalDeviceCudaKernelLaunchPropertiesNV'+--+-- == New Enum Constants+--+-- -   'NV_CUDA_KERNEL_LAUNCH_EXTENSION_NAME'+--+-- -   'NV_CUDA_KERNEL_LAUNCH_SPEC_VERSION'+--+-- -   Extending+--     'Vulkan.Extensions.VK_EXT_debug_report.DebugReportObjectTypeEXT':+--+--     -   'Vulkan.Extensions.VK_EXT_debug_report.DEBUG_REPORT_OBJECT_TYPE_CUDA_FUNCTION_NV'+--+--     -   'Vulkan.Extensions.VK_EXT_debug_report.DEBUG_REPORT_OBJECT_TYPE_CUDA_MODULE_NV'+--+-- -   Extending 'Vulkan.Core10.Enums.ObjectType.ObjectType':+--+--     -   'Vulkan.Core10.Enums.ObjectType.OBJECT_TYPE_CUDA_FUNCTION_NV'+--+--     -   'Vulkan.Core10.Enums.ObjectType.OBJECT_TYPE_CUDA_MODULE_NV'+--+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_CUDA_FUNCTION_CREATE_INFO_NV'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_CUDA_LAUNCH_INFO_NV'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_CUDA_MODULE_CREATE_INFO_NV'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_FEATURES_NV'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_PROPERTIES_NV'+--+-- == Issues+--+-- None.+--+-- == Version History+--+-- -   Revision 1, 2020-03-01 (Tristan Lorach)+--+-- -   Revision 2, 2020-09-30 (Tristan Lorach)+--+-- == See Also+--+-- 'CudaFunctionCreateInfoNV', 'Vulkan.Extensions.Handles.CudaFunctionNV',+-- 'CudaLaunchInfoNV', 'CudaModuleCreateInfoNV',+-- 'Vulkan.Extensions.Handles.CudaModuleNV',+-- 'PhysicalDeviceCudaKernelLaunchFeaturesNV',+-- 'PhysicalDeviceCudaKernelLaunchPropertiesNV', 'cmdCudaLaunchKernelNV',+-- 'createCudaFunctionNV', 'createCudaModuleNV', 'destroyCudaFunctionNV',+-- 'destroyCudaModuleNV', 'getCudaModuleCacheNV'+--+-- == Document Notes+--+-- For more information, see the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_cuda_kernel_launch 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_cuda_kernel_launch  ( createCudaModuleNV+                                                   , withCudaModuleNV+                                                   , getCudaModuleCacheNV+                                                   , createCudaFunctionNV+                                                   , withCudaFunctionNV+                                                   , destroyCudaModuleNV+                                                   , destroyCudaFunctionNV+                                                   , cmdCudaLaunchKernelNV+                                                   , CudaModuleCreateInfoNV(..)+                                                   , CudaFunctionCreateInfoNV(..)+                                                   , CudaLaunchInfoNV(..)+                                                   , PhysicalDeviceCudaKernelLaunchFeaturesNV(..)+                                                   , PhysicalDeviceCudaKernelLaunchPropertiesNV(..)+                                                   , NV_CUDA_KERNEL_LAUNCH_SPEC_VERSION+                                                   , pattern NV_CUDA_KERNEL_LAUNCH_SPEC_VERSION+                                                   , NV_CUDA_KERNEL_LAUNCH_EXTENSION_NAME+                                                   , pattern NV_CUDA_KERNEL_LAUNCH_EXTENSION_NAME+                                                   , CudaModuleNV(..)+                                                   , CudaFunctionNV(..)+                                                   , DebugReportObjectTypeEXT(..)+                                                   ) 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 (castPtr)+import GHC.Ptr (nullFunPtr)+import Foreign.Ptr (nullPtr)+import Foreign.Ptr (plusPtr)+import Data.ByteString (packCString)+import Data.ByteString (packCStringLen)+import Data.ByteString (useAsCString)+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.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.NamedType ((:::))+import Vulkan.Core10.AllocationCallbacks (AllocationCallbacks)+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.Extensions.Handles (CudaFunctionNV)+import Vulkan.Extensions.Handles (CudaFunctionNV(..))+import Vulkan.Extensions.Handles (CudaModuleNV)+import Vulkan.Extensions.Handles (CudaModuleNV(..))+import Vulkan.Core10.Handles (Device)+import Vulkan.Core10.Handles (Device(..))+import Vulkan.Core10.Handles (Device(Device))+import Vulkan.Dynamic (DeviceCmds(pVkCmdCudaLaunchKernelNV))+import Vulkan.Dynamic (DeviceCmds(pVkCreateCudaFunctionNV))+import Vulkan.Dynamic (DeviceCmds(pVkCreateCudaModuleNV))+import Vulkan.Dynamic (DeviceCmds(pVkDestroyCudaFunctionNV))+import Vulkan.Dynamic (DeviceCmds(pVkDestroyCudaModuleNV))+import Vulkan.Dynamic (DeviceCmds(pVkGetCudaModuleCacheNV))+import Vulkan.Core10.Handles (Device_T)+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_CUDA_FUNCTION_CREATE_INFO_NV))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_CUDA_LAUNCH_INFO_NV))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_CUDA_MODULE_CREATE_INFO_NV))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_FEATURES_NV))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_PROPERTIES_NV))+import Vulkan.Core10.Enums.Result (Result(SUCCESS))+import Vulkan.Extensions.Handles (CudaFunctionNV(..))+import Vulkan.Extensions.Handles (CudaModuleNV(..))+import Vulkan.Extensions.VK_EXT_debug_report (DebugReportObjectTypeEXT(..))+foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCreateCudaModuleNV+  :: FunPtr (Ptr Device_T -> Ptr CudaModuleCreateInfoNV -> Ptr AllocationCallbacks -> Ptr CudaModuleNV -> IO Result) -> Ptr Device_T -> Ptr CudaModuleCreateInfoNV -> Ptr AllocationCallbacks -> Ptr CudaModuleNV -> IO Result++-- | vkCreateCudaModuleNV - Creates a new CUDA module object+--+-- = Description+--+-- Once a CUDA module has been created, you /may/ create the function entry+-- point that /must/ refer to one function in the module.+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCreateCudaModuleNV-device-parameter# @device@ /must/ be a+--     valid 'Vulkan.Core10.Handles.Device' handle+--+-- -   #VUID-vkCreateCudaModuleNV-pCreateInfo-parameter# @pCreateInfo@+--     /must/ be a valid pointer to a valid 'CudaModuleCreateInfoNV'+--     structure+--+-- -   #VUID-vkCreateCudaModuleNV-pAllocator-parameter# If @pAllocator@ is+--     not @NULL@, @pAllocator@ /must/ be a valid pointer to a valid+--     'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks' structure+--+-- -   #VUID-vkCreateCudaModuleNV-pModule-parameter# @pModule@ /must/ be a+--     valid pointer to a 'Vulkan.Extensions.Handles.CudaModuleNV' 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_INITIALIZATION_FAILED'+--+--     -   '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_NV_cuda_kernel_launch VK_NV_cuda_kernel_launch>,+-- 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks',+-- 'CudaModuleCreateInfoNV', 'Vulkan.Extensions.Handles.CudaModuleNV',+-- 'Vulkan.Core10.Handles.Device'+createCudaModuleNV :: forall io+                    . (MonadIO io)+                   => -- | @device@ is the logical device that creates the shader module.+                      Device+                   -> -- | @pCreateInfo@ is a pointer to a 'CudaModuleCreateInfoNV' structure.+                      CudaModuleCreateInfoNV+                   -> -- | @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 (CudaModuleNV)+createCudaModuleNV device createInfo allocator = liftIO . evalContT $ do+  let vkCreateCudaModuleNVPtr = pVkCreateCudaModuleNV (case device of Device{deviceCmds} -> deviceCmds)+  lift $ unless (vkCreateCudaModuleNVPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCreateCudaModuleNV is null" Nothing Nothing+  let vkCreateCudaModuleNV' = mkVkCreateCudaModuleNV vkCreateCudaModuleNVPtr+  pCreateInfo <- ContT $ withCStruct (createInfo)+  pAllocator <- case (allocator) of+    Nothing -> pure nullPtr+    Just j -> ContT $ withCStruct (j)+  pPModule <- ContT $ bracket (callocBytes @CudaModuleNV 8) free+  r <- lift $ traceAroundEvent "vkCreateCudaModuleNV" (vkCreateCudaModuleNV'+                                                         (deviceHandle (device))+                                                         pCreateInfo+                                                         pAllocator+                                                         (pPModule))+  lift $ when (r < SUCCESS) (throwIO (VulkanException r))+  pModule <- lift $ peek @CudaModuleNV pPModule+  pure $ (pModule)++-- | A convenience wrapper to make a compatible pair of calls to+-- 'createCudaModuleNV' and 'destroyCudaModuleNV'+--+-- To ensure that 'destroyCudaModuleNV' 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.+--+withCudaModuleNV :: forall io r . MonadIO io => Device -> CudaModuleCreateInfoNV -> Maybe AllocationCallbacks -> (io CudaModuleNV -> (CudaModuleNV -> io ()) -> r) -> r+withCudaModuleNV device pCreateInfo pAllocator b =+  b (createCudaModuleNV device pCreateInfo pAllocator)+    (\(o0) -> destroyCudaModuleNV device o0 pAllocator)+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkGetCudaModuleCacheNV+  :: FunPtr (Ptr Device_T -> CudaModuleNV -> Ptr CSize -> Ptr () -> IO Result) -> Ptr Device_T -> CudaModuleNV -> Ptr CSize -> Ptr () -> IO Result++-- | vkGetCudaModuleCacheNV - Get CUDA module cache+--+-- == Valid Usage+--+-- -   #VUID-vkGetCudaModuleCacheNV-pCacheSize-09414# @pCacheSize@ /must/+--     be a pointer containing the amount of bytes to be copied in+--     @pCacheData@. If @pCacheData@ is NULL, the function will return in+--     this pointer the total amount of bytes required to later perform the+--     copy into @pCacheData@.+--+-- -   #VUID-vkGetCudaModuleCacheNV-pCacheData-09415# @pCacheData@ /may/ be+--     a pointer to a buffer in which the binary cache will be copied. The+--     amount of bytes copied is defined by the value in @pCacheSize@. This+--     pointer /may/ be NULL. In this case, the function will write the+--     total amount of required data in @pCacheSize@.+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkGetCudaModuleCacheNV-device-parameter# @device@ /must/ be a+--     valid 'Vulkan.Core10.Handles.Device' handle+--+-- -   #VUID-vkGetCudaModuleCacheNV-module-parameter# @module@ /must/ be a+--     valid 'Vulkan.Extensions.Handles.CudaModuleNV' handle+--+-- -   #VUID-vkGetCudaModuleCacheNV-pCacheSize-parameter# @pCacheSize@+--     /must/ be a valid pointer to a @size_t@ value+--+-- -   #VUID-vkGetCudaModuleCacheNV-pCacheData-parameter# If the value+--     referenced by @pCacheSize@ is not @0@, and @pCacheData@ is not+--     @NULL@, @pCacheData@ /must/ be a valid pointer to an array of+--     @pCacheSize@ bytes+--+-- -   #VUID-vkGetCudaModuleCacheNV-module-parent# @module@ /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.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_INITIALIZATION_FAILED'+--+-- = See Also+--+-- <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.Handles.CudaModuleNV', 'Vulkan.Core10.Handles.Device'+getCudaModuleCacheNV :: forall io+                      . (MonadIO io)+                     => -- | @device@ is the logical device that destroys the Function.+                        Device+                     -> -- | @module@ is the CUDA module.+                        CudaModuleNV+                     -> io (Result, ("cacheData" ::: ByteString))+getCudaModuleCacheNV device module' = liftIO . evalContT $ do+  let vkGetCudaModuleCacheNVPtr = pVkGetCudaModuleCacheNV (case device of Device{deviceCmds} -> deviceCmds)+  lift $ unless (vkGetCudaModuleCacheNVPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetCudaModuleCacheNV is null" Nothing Nothing+  let vkGetCudaModuleCacheNV' = mkVkGetCudaModuleCacheNV vkGetCudaModuleCacheNVPtr+  let device' = deviceHandle (device)+  pPCacheSize <- ContT $ bracket (callocBytes @CSize 8) free+  r <- lift $ traceAroundEvent "vkGetCudaModuleCacheNV" (vkGetCudaModuleCacheNV'+                                                           device'+                                                           (module')+                                                           (pPCacheSize)+                                                           (nullPtr))+  lift $ when (r < SUCCESS) (throwIO (VulkanException r))+  pCacheSize <- lift $ peek @CSize pPCacheSize+  pPCacheData <- ContT $ bracket (callocBytes @(()) (fromIntegral ((coerce @CSize @Word64 pCacheSize)))) free+  r' <- lift $ traceAroundEvent "vkGetCudaModuleCacheNV" (vkGetCudaModuleCacheNV'+                                                            device'+                                                            (module')+                                                            (pPCacheSize)+                                                            (pPCacheData))+  lift $ when (r' < SUCCESS) (throwIO (VulkanException r'))+  pCacheSize'' <- lift $ peek @CSize pPCacheSize+  pCacheData' <- lift $ packCStringLen  ( castPtr @() @CChar pPCacheData+                                        , (fromIntegral ((coerce @CSize @Word64 pCacheSize''))) )+  pure $ ((r'), pCacheData')+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCreateCudaFunctionNV+  :: FunPtr (Ptr Device_T -> Ptr CudaFunctionCreateInfoNV -> Ptr AllocationCallbacks -> Ptr CudaFunctionNV -> IO Result) -> Ptr Device_T -> Ptr CudaFunctionCreateInfoNV -> Ptr AllocationCallbacks -> Ptr CudaFunctionNV -> IO Result++-- | vkCreateCudaFunctionNV - Creates a new CUDA function object+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCreateCudaFunctionNV-device-parameter# @device@ /must/ be a+--     valid 'Vulkan.Core10.Handles.Device' handle+--+-- -   #VUID-vkCreateCudaFunctionNV-pCreateInfo-parameter# @pCreateInfo@+--     /must/ be a valid pointer to a valid 'CudaFunctionCreateInfoNV'+--     structure+--+-- -   #VUID-vkCreateCudaFunctionNV-pAllocator-parameter# If @pAllocator@+--     is not @NULL@, @pAllocator@ /must/ be a valid pointer to a valid+--     'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks' structure+--+-- -   #VUID-vkCreateCudaFunctionNV-pFunction-parameter# @pFunction@ /must/+--     be a valid pointer to a 'Vulkan.Extensions.Handles.CudaFunctionNV'+--     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_INITIALIZATION_FAILED'+--+--     -   '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_NV_cuda_kernel_launch VK_NV_cuda_kernel_launch>,+-- 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks',+-- 'CudaFunctionCreateInfoNV', 'Vulkan.Extensions.Handles.CudaFunctionNV',+-- 'Vulkan.Core10.Handles.Device'+createCudaFunctionNV :: forall io+                      . (MonadIO io)+                     => -- | @device@ is the logical device that creates the shader module.+                        Device+                     -> -- | @pCreateInfo@ is a pointer to a 'CudaFunctionCreateInfoNV' structure.+                        CudaFunctionCreateInfoNV+                     -> -- | @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 (CudaFunctionNV)+createCudaFunctionNV device createInfo allocator = liftIO . evalContT $ do+  let vkCreateCudaFunctionNVPtr = pVkCreateCudaFunctionNV (case device of Device{deviceCmds} -> deviceCmds)+  lift $ unless (vkCreateCudaFunctionNVPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCreateCudaFunctionNV is null" Nothing Nothing+  let vkCreateCudaFunctionNV' = mkVkCreateCudaFunctionNV vkCreateCudaFunctionNVPtr+  pCreateInfo <- ContT $ withCStruct (createInfo)+  pAllocator <- case (allocator) of+    Nothing -> pure nullPtr+    Just j -> ContT $ withCStruct (j)+  pPFunction <- ContT $ bracket (callocBytes @CudaFunctionNV 8) free+  r <- lift $ traceAroundEvent "vkCreateCudaFunctionNV" (vkCreateCudaFunctionNV'+                                                           (deviceHandle (device))+                                                           pCreateInfo+                                                           pAllocator+                                                           (pPFunction))+  lift $ when (r < SUCCESS) (throwIO (VulkanException r))+  pFunction <- lift $ peek @CudaFunctionNV pPFunction+  pure $ (pFunction)++-- | A convenience wrapper to make a compatible pair of calls to+-- 'createCudaFunctionNV' and 'destroyCudaFunctionNV'+--+-- To ensure that 'destroyCudaFunctionNV' 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.+--+withCudaFunctionNV :: forall io r . MonadIO io => Device -> CudaFunctionCreateInfoNV -> Maybe AllocationCallbacks -> (io CudaFunctionNV -> (CudaFunctionNV -> io ()) -> r) -> r+withCudaFunctionNV device pCreateInfo pAllocator b =+  b (createCudaFunctionNV device pCreateInfo pAllocator)+    (\(o0) -> destroyCudaFunctionNV device o0 pAllocator)+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkDestroyCudaModuleNV+  :: FunPtr (Ptr Device_T -> CudaModuleNV -> Ptr AllocationCallbacks -> IO ()) -> Ptr Device_T -> CudaModuleNV -> Ptr AllocationCallbacks -> IO ()++-- | vkDestroyCudaModuleNV - Destroy a CUDA module+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkDestroyCudaModuleNV-device-parameter# @device@ /must/ be a+--     valid 'Vulkan.Core10.Handles.Device' handle+--+-- -   #VUID-vkDestroyCudaModuleNV-module-parameter# @module@ /must/ be a+--     valid 'Vulkan.Extensions.Handles.CudaModuleNV' handle+--+-- -   #VUID-vkDestroyCudaModuleNV-pAllocator-parameter# If @pAllocator@ is+--     not @NULL@, @pAllocator@ /must/ be a valid pointer to a valid+--     'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks' structure+--+-- -   #VUID-vkDestroyCudaModuleNV-module-parent# @module@ /must/ have been+--     created, allocated, or retrieved from @device@+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_cuda_kernel_launch VK_NV_cuda_kernel_launch>,+-- 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks',+-- 'Vulkan.Extensions.Handles.CudaModuleNV', 'Vulkan.Core10.Handles.Device'+destroyCudaModuleNV :: forall io+                     . (MonadIO io)+                    => -- | @device@ is the logical device that destroys the shader module.+                       Device+                    -> -- | @module@ is the handle of the CUDA module to destroy.+                       CudaModuleNV+                    -> -- | @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 ()+destroyCudaModuleNV device module' allocator = liftIO . evalContT $ do+  let vkDestroyCudaModuleNVPtr = pVkDestroyCudaModuleNV (case device of Device{deviceCmds} -> deviceCmds)+  lift $ unless (vkDestroyCudaModuleNVPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkDestroyCudaModuleNV is null" Nothing Nothing+  let vkDestroyCudaModuleNV' = mkVkDestroyCudaModuleNV vkDestroyCudaModuleNVPtr+  pAllocator <- case (allocator) of+    Nothing -> pure nullPtr+    Just j -> ContT $ withCStruct (j)+  lift $ traceAroundEvent "vkDestroyCudaModuleNV" (vkDestroyCudaModuleNV'+                                                     (deviceHandle (device))+                                                     (module')+                                                     pAllocator)+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkDestroyCudaFunctionNV+  :: FunPtr (Ptr Device_T -> CudaFunctionNV -> Ptr AllocationCallbacks -> IO ()) -> Ptr Device_T -> CudaFunctionNV -> Ptr AllocationCallbacks -> IO ()++-- | vkDestroyCudaFunctionNV - Destroy a CUDA function+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkDestroyCudaFunctionNV-device-parameter# @device@ /must/ be a+--     valid 'Vulkan.Core10.Handles.Device' handle+--+-- -   #VUID-vkDestroyCudaFunctionNV-function-parameter# @function@ /must/+--     be a valid 'Vulkan.Extensions.Handles.CudaFunctionNV' handle+--+-- -   #VUID-vkDestroyCudaFunctionNV-pAllocator-parameter# If @pAllocator@+--     is not @NULL@, @pAllocator@ /must/ be a valid pointer to a valid+--     'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks' structure+--+-- -   #VUID-vkDestroyCudaFunctionNV-function-parent# @function@ /must/+--     have been created, allocated, or retrieved from @device@+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_cuda_kernel_launch VK_NV_cuda_kernel_launch>,+-- 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks',+-- 'Vulkan.Extensions.Handles.CudaFunctionNV',+-- 'Vulkan.Core10.Handles.Device'+destroyCudaFunctionNV :: forall io+                       . (MonadIO io)+                      => -- | @device@ is the logical device that destroys the Function.+                         Device+                      -> -- | @function@ is the handle of the CUDA function to destroy.+                         CudaFunctionNV+                      -> -- | @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 ()+destroyCudaFunctionNV device function allocator = liftIO . evalContT $ do+  let vkDestroyCudaFunctionNVPtr = pVkDestroyCudaFunctionNV (case device of Device{deviceCmds} -> deviceCmds)+  lift $ unless (vkDestroyCudaFunctionNVPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkDestroyCudaFunctionNV is null" Nothing Nothing+  let vkDestroyCudaFunctionNV' = mkVkDestroyCudaFunctionNV vkDestroyCudaFunctionNVPtr+  pAllocator <- case (allocator) of+    Nothing -> pure nullPtr+    Just j -> ContT $ withCStruct (j)+  lift $ traceAroundEvent "vkDestroyCudaFunctionNV" (vkDestroyCudaFunctionNV'+                                                       (deviceHandle (device))+                                                       (function)+                                                       pAllocator)+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdCudaLaunchKernelNV+  :: FunPtr (Ptr CommandBuffer_T -> Ptr CudaLaunchInfoNV -> IO ()) -> Ptr CommandBuffer_T -> Ptr CudaLaunchInfoNV -> IO ()++-- | vkCmdCudaLaunchKernelNV - Dispatch compute work items+--+-- = Description+--+-- When the command is executed, a global workgroup consisting of+-- @gridDimX@ × @gridDimY@ × @gridDimZ@ local workgroups is assembled.+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdCudaLaunchKernelNV-commandBuffer-parameter#+--     @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdCudaLaunchKernelNV-pLaunchInfo-parameter# @pLaunchInfo@+--     /must/ be a valid pointer to a valid 'CudaLaunchInfoNV' structure+--+-- -   #VUID-vkCmdCudaLaunchKernelNV-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-vkCmdCudaLaunchKernelNV-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics, or compute operations+--+-- -   #VUID-vkCmdCudaLaunchKernelNV-videocoding# This command /must/ only+--     be called outside of a video coding scope+--+-- == 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                                                                                                                                 |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Compute                                                                                                               |                                                                                                                                        |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_cuda_kernel_launch VK_NV_cuda_kernel_launch>,+-- 'Vulkan.Core10.Handles.CommandBuffer', 'CudaLaunchInfoNV'+cmdCudaLaunchKernelNV :: forall io+                       . (MonadIO io)+                      => -- | @commandBuffer@ is the command buffer into which the command will be+                         -- recorded.+                         CommandBuffer+                      -> -- | @pLaunchInfo@ is a pointer to a 'CudaLaunchInfoNV' structure in which+                         -- the grid (similar to workgroup) dimension, function handle and related+                         -- arguments are defined.+                         CudaLaunchInfoNV+                      -> io ()+cmdCudaLaunchKernelNV commandBuffer launchInfo = liftIO . evalContT $ do+  let vkCmdCudaLaunchKernelNVPtr = pVkCmdCudaLaunchKernelNV (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  lift $ unless (vkCmdCudaLaunchKernelNVPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdCudaLaunchKernelNV is null" Nothing Nothing+  let vkCmdCudaLaunchKernelNV' = mkVkCmdCudaLaunchKernelNV vkCmdCudaLaunchKernelNVPtr+  pLaunchInfo <- ContT $ withCStruct (launchInfo)+  lift $ traceAroundEvent "vkCmdCudaLaunchKernelNV" (vkCmdCudaLaunchKernelNV'+                                                       (commandBufferHandle (commandBuffer))+                                                       pLaunchInfo)+  pure $ ()+++-- | VkCudaModuleCreateInfoNV - Structure specifying the parameters to create+-- a CUDA Module+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_cuda_kernel_launch VK_NV_cuda_kernel_launch>,+-- 'Vulkan.Core10.Enums.StructureType.StructureType', 'createCudaModuleNV'+data CudaModuleCreateInfoNV = CudaModuleCreateInfoNV+  { -- | @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@.+    --+    -- #VUID-VkCudaModuleCreateInfoNV-dataSize-arraylength# @dataSize@ /must/+    -- be greater than @0@+    dataSize :: Word64+  , -- | @pData@ is a pointer to CUDA code+    --+    -- #VUID-VkCudaModuleCreateInfoNV-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 (CudaModuleCreateInfoNV)+#endif+deriving instance Show CudaModuleCreateInfoNV++instance ToCStruct CudaModuleCreateInfoNV where+  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p CudaModuleCreateInfoNV{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_CUDA_MODULE_CREATE_INFO_NV)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr CSize)) (CSize (dataSize))+    poke ((p `plusPtr` 24 :: Ptr (Ptr ()))) (data')+    f+  cStructSize = 32+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_CUDA_MODULE_CREATE_INFO_NV)+    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 CudaModuleCreateInfoNV where+  peekCStruct p = do+    dataSize <- peek @CSize ((p `plusPtr` 16 :: Ptr CSize))+    pData <- peek @(Ptr ()) ((p `plusPtr` 24 :: Ptr (Ptr ())))+    pure $ CudaModuleCreateInfoNV+             (coerce @CSize @Word64 dataSize) pData++instance Storable CudaModuleCreateInfoNV where+  sizeOf ~_ = 32+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero CudaModuleCreateInfoNV where+  zero = CudaModuleCreateInfoNV+           zero+           zero+++-- | VkCudaFunctionCreateInfoNV - Structure specifying the parameters to+-- create a CUDA Function+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <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.Handles.CudaModuleNV',+-- 'Vulkan.Core10.Enums.StructureType.StructureType',+-- 'createCudaFunctionNV'+data CudaFunctionCreateInfoNV = CudaFunctionCreateInfoNV+  { -- | @module@ /must/ be the CUDA 'Vulkan.Extensions.Handles.CudaModuleNV'+    -- module in which the function resides.+    --+    -- #VUID-VkCudaFunctionCreateInfoNV-module-parameter# @module@ /must/ be a+    -- valid 'Vulkan.Extensions.Handles.CudaModuleNV' handle+    module' :: CudaModuleNV+  , -- | @pName@ is a null-terminated UTF-8 string containing the name of the+    -- shader entry point for this stage.+    --+    -- #VUID-VkCudaFunctionCreateInfoNV-pName-parameter# @pName@ /must/ be a+    -- null-terminated UTF-8 string+    name :: ByteString+  }+  deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (CudaFunctionCreateInfoNV)+#endif+deriving instance Show CudaFunctionCreateInfoNV++instance ToCStruct CudaFunctionCreateInfoNV where+  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p CudaFunctionCreateInfoNV{..} f = evalContT $ do+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_CUDA_FUNCTION_CREATE_INFO_NV)+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    lift $ poke ((p `plusPtr` 16 :: Ptr CudaModuleNV)) (module')+    pName'' <- ContT $ useAsCString (name)+    lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr CChar))) pName''+    lift $ f+  cStructSize = 32+  cStructAlignment = 8+  pokeZeroCStruct p f = evalContT $ do+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_CUDA_FUNCTION_CREATE_INFO_NV)+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    lift $ poke ((p `plusPtr` 16 :: Ptr CudaModuleNV)) (zero)+    pName'' <- ContT $ useAsCString (mempty)+    lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr CChar))) pName''+    lift $ f++instance FromCStruct CudaFunctionCreateInfoNV where+  peekCStruct p = do+    module' <- peek @CudaModuleNV ((p `plusPtr` 16 :: Ptr CudaModuleNV))+    pName <- packCString =<< peek ((p `plusPtr` 24 :: Ptr (Ptr CChar)))+    pure $ CudaFunctionCreateInfoNV+             module' pName++instance Zero CudaFunctionCreateInfoNV where+  zero = CudaFunctionCreateInfoNV+           zero+           mempty+++-- | VkCudaLaunchInfoNV - Structure specifying the parameters to launch a+-- CUDA kernel+--+-- == Valid Usage+--+-- -   #VUID-VkCudaLaunchInfoNV-gridDimX-09406# @gridDimX@ /must/ be less+--     than or equal to+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxComputeWorkGroupCount@[0]+--+-- -   #VUID-VkCudaLaunchInfoNV-gridDimY-09407# @gridDimY@ /must/ be less+--     than or equal to+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxComputeWorkGroupCount@[1]+--+-- -   #VUID-VkCudaLaunchInfoNV-gridDimZ-09408# @gridDimZ@ /must/ be less+--     than or equal to+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxComputeWorkGroupCount@[2]+--+-- -   #VUID-VkCudaLaunchInfoNV-paramCount-09409# @paramCount@ /must/ be+--     the total amount of parameters listed in the @pParams@ table.+--+-- -   #VUID-VkCudaLaunchInfoNV-pParams-09410# @pParams@ /must/ be a+--     pointer to a table of @paramCount@ parameters, corresponding to the+--     arguments of @function@.+--+-- -   #VUID-VkCudaLaunchInfoNV-extraCount-09411# @extraCount@ must be 0+--+-- -   #VUID-VkCudaLaunchInfoNV-pExtras-09412# @pExtras@ must be NULL+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-VkCudaLaunchInfoNV-sType-sType# @sType@ /must/ be+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_CUDA_LAUNCH_INFO_NV'+--+-- -   #VUID-VkCudaLaunchInfoNV-pNext-pNext# @pNext@ /must/ be @NULL@+--+-- -   #VUID-VkCudaLaunchInfoNV-function-parameter# @function@ /must/ be a+--     valid 'Vulkan.Extensions.Handles.CudaFunctionNV' handle+--+-- -   #VUID-VkCudaLaunchInfoNV-pParams-parameter# If @paramCount@ is not+--     @0@, @pParams@ /must/ be a valid pointer to an array of @paramCount@+--     bytes+--+-- -   #VUID-VkCudaLaunchInfoNV-pExtras-parameter# If @extraCount@ is not+--     @0@, @pExtras@ /must/ be a valid pointer to an array of @extraCount@+--     bytes+--+-- = See Also+--+-- <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.Handles.CudaFunctionNV',+-- 'Vulkan.Core10.Enums.StructureType.StructureType',+-- 'cmdCudaLaunchKernelNV'+data CudaLaunchInfoNV = CudaLaunchInfoNV+  { -- | @function@ is the CUDA-Driver handle to the function being launched.+    function :: CudaFunctionNV+  , -- | @gridDimX@ is the number of local workgroups to dispatch in the X+    -- dimension. It must be less than or equal to+    -- '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+    -- '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+    -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxComputeWorkGroupCount@[2]+    gridDimZ :: Word32+  , -- | @blockDimX@ is block size in the X dimension.+    blockDimX :: Word32+  , -- | @blockDimY@ is block size in the Y dimension.+    blockDimY :: Word32+  , -- | @blockDimZ@ is block size in the Z dimension.+    blockDimZ :: Word32+  , -- | @sharedMemBytes@ is the dynamic shared-memory size per thread block in+    -- bytes.+    sharedMemBytes :: Word32+  , -- | @pParams@ is a pointer to an array of @paramCount@ pointers,+    -- corresponding to the arguments of @function@.+    params :: Vector (Ptr ())+  , -- | @pExtras@ is reserved for future use.+    extras :: Vector (Ptr ())+  }+  deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (CudaLaunchInfoNV)+#endif+deriving instance Show CudaLaunchInfoNV++instance ToCStruct CudaLaunchInfoNV where+  withCStruct x f = allocaBytes 88 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p CudaLaunchInfoNV{..} f = evalContT $ do+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_CUDA_LAUNCH_INFO_NV)+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    lift $ poke ((p `plusPtr` 16 :: Ptr CudaFunctionNV)) (function)+    lift $ poke ((p `plusPtr` 24 :: Ptr Word32)) (gridDimX)+    lift $ poke ((p `plusPtr` 28 :: Ptr Word32)) (gridDimY)+    lift $ poke ((p `plusPtr` 32 :: Ptr Word32)) (gridDimZ)+    lift $ poke ((p `plusPtr` 36 :: Ptr Word32)) (blockDimX)+    lift $ poke ((p `plusPtr` 40 :: Ptr Word32)) (blockDimY)+    lift $ poke ((p `plusPtr` 44 :: Ptr Word32)) (blockDimZ)+    lift $ poke ((p `plusPtr` 48 :: Ptr Word32)) (sharedMemBytes)+    lift $ poke ((p `plusPtr` 56 :: Ptr CSize)) ((fromIntegral (Data.Vector.length $ (params)) :: CSize))+    pPParams' <- ContT $ allocaBytes @(Ptr ()) ((Data.Vector.length (params)) * 8)+    lift $ Data.Vector.imapM_ (\i e -> poke (pPParams' `plusPtr` (8 * (i)) :: Ptr (Ptr ())) (e)) (params)+    lift $ poke ((p `plusPtr` 64 :: Ptr (Ptr (Ptr ())))) (pPParams')+    lift $ poke ((p `plusPtr` 72 :: Ptr CSize)) ((fromIntegral (Data.Vector.length $ (extras)) :: CSize))+    pPExtras' <- ContT $ allocaBytes @(Ptr ()) ((Data.Vector.length (extras)) * 8)+    lift $ Data.Vector.imapM_ (\i e -> poke (pPExtras' `plusPtr` (8 * (i)) :: Ptr (Ptr ())) (e)) (extras)+    lift $ poke ((p `plusPtr` 80 :: Ptr (Ptr (Ptr ())))) (pPExtras')+    lift $ f+  cStructSize = 88+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_CUDA_LAUNCH_INFO_NV)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr CudaFunctionNV)) (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 CudaLaunchInfoNV where+  peekCStruct p = do+    function <- peek @CudaFunctionNV ((p `plusPtr` 16 :: Ptr CudaFunctionNV))+    gridDimX <- peek @Word32 ((p `plusPtr` 24 :: Ptr Word32))+    gridDimY <- peek @Word32 ((p `plusPtr` 28 :: Ptr Word32))+    gridDimZ <- peek @Word32 ((p `plusPtr` 32 :: Ptr Word32))+    blockDimX <- peek @Word32 ((p `plusPtr` 36 :: Ptr Word32))+    blockDimY <- peek @Word32 ((p `plusPtr` 40 :: Ptr Word32))+    blockDimZ <- peek @Word32 ((p `plusPtr` 44 :: Ptr Word32))+    sharedMemBytes <- peek @Word32 ((p `plusPtr` 48 :: Ptr Word32))+    paramCount <- peek @CSize ((p `plusPtr` 56 :: Ptr CSize))+    pParams <- peek @(Ptr (Ptr ())) ((p `plusPtr` 64 :: Ptr (Ptr (Ptr ()))))+    pParams' <- generateM (fromIntegral (coerce @CSize @Word64 paramCount)) (\i -> peek @(Ptr ()) ((pParams `advancePtrBytes` (8 * (i)) :: Ptr (Ptr ()))))+    extraCount <- peek @CSize ((p `plusPtr` 72 :: Ptr CSize))+    pExtras <- peek @(Ptr (Ptr ())) ((p `plusPtr` 80 :: Ptr (Ptr (Ptr ()))))+    pExtras' <- generateM (fromIntegral (coerce @CSize @Word64 extraCount)) (\i -> peek @(Ptr ()) ((pExtras `advancePtrBytes` (8 * (i)) :: Ptr (Ptr ()))))+    pure $ CudaLaunchInfoNV+             function+             gridDimX+             gridDimY+             gridDimZ+             blockDimX+             blockDimY+             blockDimZ+             sharedMemBytes+             pParams'+             pExtras'++instance Zero CudaLaunchInfoNV where+  zero = CudaLaunchInfoNV+           zero+           zero+           zero+           zero+           zero+           zero+           zero+           zero+           mempty+           mempty+++-- | VkPhysicalDeviceCudaKernelLaunchFeaturesNV - Structure describing+-- whether cuda kernel launch is supported by the implementation+--+-- = Members+--+-- This structure describes the following features:+--+-- = Description+--+-- If the 'PhysicalDeviceCudaKernelLaunchFeaturesNV' 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. 'PhysicalDeviceCudaKernelLaunchFeaturesNV' /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_cuda_kernel_launch VK_NV_cuda_kernel_launch>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceCudaKernelLaunchFeaturesNV = PhysicalDeviceCudaKernelLaunchFeaturesNV+  { -- | #features-cudaKernelLaunchFeatures# @cudaKernelLaunchFeatures@ is+    -- non-zero if cuda kernel launch is supported.+    cudaKernelLaunchFeatures :: Bool }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceCudaKernelLaunchFeaturesNV)+#endif+deriving instance Show PhysicalDeviceCudaKernelLaunchFeaturesNV++instance ToCStruct PhysicalDeviceCudaKernelLaunchFeaturesNV where+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p PhysicalDeviceCudaKernelLaunchFeaturesNV{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_FEATURES_NV)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (cudaKernelLaunchFeatures))+    f+  cStructSize = 24+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_FEATURES_NV)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+    f++instance FromCStruct PhysicalDeviceCudaKernelLaunchFeaturesNV where+  peekCStruct p = do+    cudaKernelLaunchFeatures <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+    pure $ PhysicalDeviceCudaKernelLaunchFeaturesNV+             (bool32ToBool cudaKernelLaunchFeatures)++instance Storable PhysicalDeviceCudaKernelLaunchFeaturesNV where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceCudaKernelLaunchFeaturesNV where+  zero = PhysicalDeviceCudaKernelLaunchFeaturesNV+           zero+++-- | VkPhysicalDeviceCudaKernelLaunchPropertiesNV - Structure describing the+-- compute capability version available+--+-- = Members+--+-- The members of the 'PhysicalDeviceCudaKernelLaunchPropertiesNV'+-- structure describe the following features:+--+-- = Description+--+-- If the 'PhysicalDeviceCudaKernelLaunchPropertiesNV' 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_cuda_kernel_launch VK_NV_cuda_kernel_launch>,+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceCudaKernelLaunchPropertiesNV = PhysicalDeviceCudaKernelLaunchPropertiesNV+  { -- | #limits-computeCapabilityMinor# @computeCapabilityMinor@ indicates the+    -- minor version number of the compute code.+    computeCapabilityMinor :: Word32+  , -- | #limits-computeCapabilityMajor# @computeCapabilityMajor@ indicates the+    -- minor version number of the compute code.+    computeCapabilityMajor :: Word32+  }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceCudaKernelLaunchPropertiesNV)+#endif+deriving instance Show PhysicalDeviceCudaKernelLaunchPropertiesNV++instance ToCStruct PhysicalDeviceCudaKernelLaunchPropertiesNV where+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p PhysicalDeviceCudaKernelLaunchPropertiesNV{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_PROPERTIES_NV)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Word32)) (computeCapabilityMinor)+    poke ((p `plusPtr` 20 :: Ptr Word32)) (computeCapabilityMajor)+    f+  cStructSize = 24+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_PROPERTIES_NV)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 20 :: Ptr Word32)) (zero)+    f++instance FromCStruct PhysicalDeviceCudaKernelLaunchPropertiesNV where+  peekCStruct p = do+    computeCapabilityMinor <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))+    computeCapabilityMajor <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))+    pure $ PhysicalDeviceCudaKernelLaunchPropertiesNV+             computeCapabilityMinor computeCapabilityMajor++instance Storable PhysicalDeviceCudaKernelLaunchPropertiesNV where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceCudaKernelLaunchPropertiesNV where+  zero = PhysicalDeviceCudaKernelLaunchPropertiesNV+           zero+           zero+++type NV_CUDA_KERNEL_LAUNCH_SPEC_VERSION = 2++-- No documentation found for TopLevel "VK_NV_CUDA_KERNEL_LAUNCH_SPEC_VERSION"+pattern NV_CUDA_KERNEL_LAUNCH_SPEC_VERSION :: forall a . Integral a => a+pattern NV_CUDA_KERNEL_LAUNCH_SPEC_VERSION = 2+++type NV_CUDA_KERNEL_LAUNCH_EXTENSION_NAME = "VK_NV_cuda_kernel_launch"++-- No documentation found for TopLevel "VK_NV_CUDA_KERNEL_LAUNCH_EXTENSION_NAME"+pattern NV_CUDA_KERNEL_LAUNCH_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a+pattern NV_CUDA_KERNEL_LAUNCH_EXTENSION_NAME = "VK_NV_cuda_kernel_launch"+
+ src/Vulkan/Extensions/VK_NV_cuda_kernel_launch.hs-boot view
@@ -0,0 +1,234 @@+{-# language CPP #-}+-- | = Name+--+-- VK_NV_cuda_kernel_launch - device extension+--+-- == VK_NV_cuda_kernel_launch+--+-- [__Name String__]+--     @VK_NV_cuda_kernel_launch@+--+-- [__Extension Type__]+--     Device extension+--+-- [__Registered Extension Number__]+--     308+--+-- [__Revision__]+--     2+--+-- [__Ratification Status__]+--     Not ratified+--+-- [__Extension and Version Dependencies__]+--+--     -   __This is a /provisional/ extension and /must/ be used with+--         caution. See the+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#boilerplate-provisional-header description>+--         of provisional header files for enablement and stability+--         details.__+--+-- [__Contact__]+--+--     -   Tristan Lorach+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_NV_cuda_kernel_launch] @tlorach%0A*Here describe the issue or question you have about the VK_NV_cuda_kernel_launch extension* >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+--     2020-09-30+--+-- [__Contributors__]+--+--     -   Eric Werness, NVIDIA+--+-- == Description+--+-- Interoperability between APIs can sometimes create additional overhead+-- depending on the platform used. This extension targets deployment of+-- existing CUDA kernels via Vulkan, with a way to directly upload PTX+-- kernels and dispatch the kernels from Vulkan’s command buffer without+-- the need to use interoperability between the Vulkan and CUDA contexts.+-- However, we do encourage actual development using the native CUDA+-- runtime for the purpose of debugging and profiling.+--+-- The application will first have to create a CUDA module using+-- 'createCudaModuleNV' then create the CUDA function entry point with+-- 'createCudaFunctionNV'.+--+-- Then in order to dispatch this function, the application will create a+-- command buffer where it will launch the kernel with+-- 'cmdCudaLaunchKernelNV'.+--+-- When done, the application will then destroy the function handle, as+-- well as the CUDA module handle with 'destroyCudaFunctionNV' and+-- 'destroyCudaModuleNV'.+--+-- To reduce the impact of compilation time, this extension offers the+-- capability to return a binary cache from the PTX that was provided. For+-- this, a first query for the required cache size is made with+-- '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+-- sending this cache instead of the PTX code (using the same+-- 'createCudaModuleNV'), thus significantly speeding up the initialization+-- of the CUDA module.+--+-- As with 'Vulkan.Core10.Handles.PipelineCache', the binary cache depends+-- on the hardware architecture. Therefore the application must assume the+-- cache might fail, and thus need to handle falling back to the original+-- PTX code as necessary. Most often, the cache will succeed if the same+-- GPU driver and architecture is used between the cache generation from+-- PTX and the use of this cache. But most often, in the event of a new+-- driver version or a if using a different GPU But in the event of a new+-- driver version or if using a different GPU architecture, the cache is+-- likely to become invalid.+--+-- == New Object Types+--+-- -   'Vulkan.Extensions.Handles.CudaFunctionNV'+--+-- -   'Vulkan.Extensions.Handles.CudaModuleNV'+--+-- == New Commands+--+-- -   'cmdCudaLaunchKernelNV'+--+-- -   'createCudaFunctionNV'+--+-- -   'createCudaModuleNV'+--+-- -   'destroyCudaFunctionNV'+--+-- -   'destroyCudaModuleNV'+--+-- -   'getCudaModuleCacheNV'+--+-- == New Structures+--+-- -   'CudaFunctionCreateInfoNV'+--+-- -   'CudaLaunchInfoNV'+--+-- -   'CudaModuleCreateInfoNV'+--+-- -   Extending+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+--     'Vulkan.Core10.Device.DeviceCreateInfo':+--+--     -   'PhysicalDeviceCudaKernelLaunchFeaturesNV'+--+-- -   Extending+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':+--+--     -   'PhysicalDeviceCudaKernelLaunchPropertiesNV'+--+-- == New Enum Constants+--+-- -   'NV_CUDA_KERNEL_LAUNCH_EXTENSION_NAME'+--+-- -   'NV_CUDA_KERNEL_LAUNCH_SPEC_VERSION'+--+-- -   Extending+--     'Vulkan.Extensions.VK_EXT_debug_report.DebugReportObjectTypeEXT':+--+--     -   'Vulkan.Extensions.VK_EXT_debug_report.DEBUG_REPORT_OBJECT_TYPE_CUDA_FUNCTION_NV'+--+--     -   'Vulkan.Extensions.VK_EXT_debug_report.DEBUG_REPORT_OBJECT_TYPE_CUDA_MODULE_NV'+--+-- -   Extending 'Vulkan.Core10.Enums.ObjectType.ObjectType':+--+--     -   'Vulkan.Core10.Enums.ObjectType.OBJECT_TYPE_CUDA_FUNCTION_NV'+--+--     -   'Vulkan.Core10.Enums.ObjectType.OBJECT_TYPE_CUDA_MODULE_NV'+--+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_CUDA_FUNCTION_CREATE_INFO_NV'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_CUDA_LAUNCH_INFO_NV'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_CUDA_MODULE_CREATE_INFO_NV'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_FEATURES_NV'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_PROPERTIES_NV'+--+-- == Issues+--+-- None.+--+-- == Version History+--+-- -   Revision 1, 2020-03-01 (Tristan Lorach)+--+-- -   Revision 2, 2020-09-30 (Tristan Lorach)+--+-- == See Also+--+-- 'CudaFunctionCreateInfoNV', 'Vulkan.Extensions.Handles.CudaFunctionNV',+-- 'CudaLaunchInfoNV', 'CudaModuleCreateInfoNV',+-- 'Vulkan.Extensions.Handles.CudaModuleNV',+-- 'PhysicalDeviceCudaKernelLaunchFeaturesNV',+-- 'PhysicalDeviceCudaKernelLaunchPropertiesNV', 'cmdCudaLaunchKernelNV',+-- 'createCudaFunctionNV', 'createCudaModuleNV', 'destroyCudaFunctionNV',+-- 'destroyCudaModuleNV', 'getCudaModuleCacheNV'+--+-- == Document Notes+--+-- For more information, see the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_cuda_kernel_launch 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_cuda_kernel_launch  ( CudaFunctionCreateInfoNV+                                                   , CudaLaunchInfoNV+                                                   , CudaModuleCreateInfoNV+                                                   , PhysicalDeviceCudaKernelLaunchFeaturesNV+                                                   , PhysicalDeviceCudaKernelLaunchPropertiesNV+                                                   ) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data CudaFunctionCreateInfoNV++instance ToCStruct CudaFunctionCreateInfoNV+instance Show CudaFunctionCreateInfoNV++instance FromCStruct CudaFunctionCreateInfoNV+++data CudaLaunchInfoNV++instance ToCStruct CudaLaunchInfoNV+instance Show CudaLaunchInfoNV++instance FromCStruct CudaLaunchInfoNV+++data CudaModuleCreateInfoNV++instance ToCStruct CudaModuleCreateInfoNV+instance Show CudaModuleCreateInfoNV++instance FromCStruct CudaModuleCreateInfoNV+++data PhysicalDeviceCudaKernelLaunchFeaturesNV++instance ToCStruct PhysicalDeviceCudaKernelLaunchFeaturesNV+instance Show PhysicalDeviceCudaKernelLaunchFeaturesNV++instance FromCStruct PhysicalDeviceCudaKernelLaunchFeaturesNV+++data PhysicalDeviceCudaKernelLaunchPropertiesNV++instance ToCStruct PhysicalDeviceCudaKernelLaunchPropertiesNV+instance Show PhysicalDeviceCudaKernelLaunchPropertiesNV++instance FromCStruct PhysicalDeviceCudaKernelLaunchPropertiesNV+
src/Vulkan/Extensions/VK_NV_device_generated_commands.hs view
@@ -822,11 +822,10 @@ --     <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'+--     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@@ -1435,6 +1434,9 @@ -- -- -   #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',@@ -1443,9 +1445,10 @@ --     command -- -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08618# If a shader object---     is bound to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'---     stage, and the most recent call to+--     is bound to any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current 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'@@ -1457,8 +1460,12 @@ --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT' --     or --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'---     stage, 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/---     have been called in the current command buffer prior to this drawing+--     stage, and the most recent 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@@ -1548,6 +1555,9 @@ -- -- -   #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',@@ -1566,6 +1576,9 @@ -- -- -   #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',@@ -1584,6 +1597,9 @@ -- -- -   #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',@@ -1615,12 +1631,12 @@ -- -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08626# If a shader object --     is bound to any graphics stage, and the most recent call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'---     in the current command buffer set @sampleLocationsEnable@ to---     'Vulkan.Core10.FundamentalTypes.TRUE', and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     'Vulkan.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@@ -1857,16 +1873,22 @@ --     the last call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' ----- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-09232# If a shader object---     is bound to any graphics stage, and the @VK_NV_clip_space_w_scaling@---     extension is enabled on the device, then+-- -   #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+--     /must/ have been called in the current command buffer prior to this --     drawing command ----- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08636# If a shader object---     is bound to any graphics stage, and the @VK_NV_clip_space_w_scaling@---     extension is enabled on the device, then the @viewportCount@+-- -   #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@@ -1899,33 +1921,40 @@ -- -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-shadingRateImage-09233# If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>---     feature is enabled, and the most recent call to+--     feature is enabled, and a shader object is bound to any graphics+--     stage, and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set rasterizerDiscardEnable to+--     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+--     /must/ have been called in the current command buffer prior to this --     drawing command ----- -   #VUID-vkCmdExecuteGeneratedCommandsNV-shadingRateImage-09234# If a---     shader object is bound to any graphics stage, and the+-- -   #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 on the device, and the most recent call to+--     feature is enabled, and a shader object is bound to any graphics+--     stage, and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set rasterizerDiscardEnable to+--     in 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+--     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+--     /must/ have been called in the current command buffer prior to this --     drawing command ----- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08637# If a shader object---     is bound to any graphics stage, and the+-- -   #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 on the device, then the @viewportCount@ parameter---     in the last call to+--     feature is enabled, and a shader object is bound to any graphics+--     stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in 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@@ -1973,16 +2002,18 @@ --     /must/ have been called in the current command buffer prior to this --     drawing command ----- -   #VUID-vkCmdExecuteGeneratedCommandsNV-exclusiveScissor-09235# If a---     shader object is bound to any graphics stage, and the+-- -   #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, then+--     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+--     /must/ have been called in the current command buffer prior to this --     drawing command ----- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08638# If a shader object---     is bound to any graphics stage, and the most recent call to+-- -   #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',@@ -2034,12 +2065,12 @@ -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08641# If a shader object --     is bound to the --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'---     stage, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>---     feature is enabled on the device, and the most recent call to+--     stage, and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     '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@@ -2083,7 +2114,9 @@ --     'Vulkan.Core10.FundamentalTypes.FALSE' -- -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08643# If a shader object---     is bound to any graphics stage, and the most recent call to+--     is bound to the+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'+--     stage, and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     in the current command buffer set @rasterizerDiscardEnable@ to --     'Vulkan.Core10.FundamentalTypes.FALSE', then for each color@@ -2445,7 +2478,10 @@ --     call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     '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@@ -2949,7 +2985,9 @@ --     drawing command -- -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08658# If a shader object---     is bound to any graphics stage, and the most recent call to+--     is bound to the+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'+--     stage, and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     in the current command buffer set @rasterizerDiscardEnable@ to --     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to@@ -3080,6 +3118,20 @@ --     /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'@@ -3092,7 +3144,10 @@ --     @VK_EXT_provoking_vertex@ extension is enabled, and a shader object --     is bound to the --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'---     stage, then+--     stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_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@@ -3108,6 +3163,9 @@ -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08666# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader --     object is bound to any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in 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@@ -3117,7 +3175,12 @@ -- -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08667# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader---     object is bound to the vertex stage, and the most recent call to+--     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@@ -3127,8 +3190,14 @@ -- -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08668# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader---     object that outputs line primitives is bound to the tessellation---     evaluation or geometry stage, then+--     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@@ -3144,6 +3213,9 @@ -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08669# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader --     object is bound to any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in 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@@ -3153,7 +3225,12 @@ -- -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08670# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader---     object is bound to the vertex stage, and the most recent call to+--     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@@ -3163,8 +3240,14 @@ -- -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08671# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader---     object that outputs line primitives is bound to the tessellation---     evaluation or geometry stage, then+--     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@@ -3180,6 +3263,9 @@ -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08672# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader --     object is bound to any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in 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@@ -3266,6 +3352,9 @@ --     shader object is bound to the --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' --     stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in 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@@ -3353,7 +3442,7 @@ --     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+--     /must/ have been called in the current command buffer prior to this --     drawing command -- -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08681# If the@@ -3484,6 +3573,21 @@ --     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'@@ -3496,6 +3600,21 @@ --     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'@@ -3508,6 +3627,21 @@ --     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'@@ -3569,7 +3703,9 @@ --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' -- -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-sampleLocationsEnable-07484#---     If the bound graphics pipeline was created with the+--     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@@ -3580,7 +3716,9 @@ --     bit set -- -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-sampleLocationsEnable-07485#---     If the bound graphics pipeline state was created with the+--     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'@@ -3597,7 +3735,9 @@ --     with a @samples@ parameter equaling @rasterizationSamples@ -- -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-sampleLocationsEnable-07486#---     If the bound graphics pipeline state was created with the+--     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'@@ -3614,7 +3754,9 @@ --     with a @samples@ parameter equaling @rasterizationSamples@ -- -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-sampleLocationsEnable-07487#---     If the bound graphics pipeline state was created with the+--     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@@ -3677,9 +3819,10 @@ --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' -- -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-coverageModulationTableEnable-07488#---     If the bound graphics pipeline state was created with the+--     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+--     state enabled, and the last call to --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV' --     set @coverageModulationTableEnable@ to --     'Vulkan.Core10.FundamentalTypes.TRUE', then the@@ -3714,6 +3857,29 @@ --     '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@@ -3750,6 +3916,15 @@ --     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@@ -4005,15 +4180,15 @@ --     and a fragment shader is bound, it /must/ not declare the --     @DepthReplacing@ or @StencilRefReplacingEXT@ execution modes ----- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08880# If a shader object---     is bound to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'---     stage and the+-- -   #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 the most recent call to+--     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'+--     '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@@ -4086,8 +4261,10 @@ --     described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input ???> ----- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-07842# If the bound---     graphics pipeline state was created with the+-- -   #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'@@ -4130,107 +4307,90 @@ --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT' --     /must/ not be @NULL@ ----- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08881# If a shader object---     is bound to the+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-04914# If there is a+--     shader object bound to the --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'---     stage, then---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-04914# If the bound---     graphics pipeline state was created with the+--     stage or the bound graphics pipeline state was created with the --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'---     dynamic state enabled, then+--     dynamic state enabled then --     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT' --     /must/ have been called in the current command buffer prior to this --     draw command ----- -   #VUID-vkCmdExecuteGeneratedCommandsNV-Input-07939# If the bound---     graphics pipeline state was created with the+-- -   #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+--     dynamic state enabled then all variables with the @Input@ storage --     class decorated with @Location@ in the @Vertex@ @Execution@ @Model@ --     @OpEntryPoint@ /must/ contain a location in --     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@location@ ----- -   #VUID-vkCmdExecuteGeneratedCommandsNV-Input-08734# If the bound---     graphics pipeline state was created with the+-- -   #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+--     dynamic state enabled then the numeric type associated with all --     @Input@ variables of the corresponding @Location@ in the @Vertex@ --     @Execution@ @Model@ @OpEntryPoint@ /must/ be the same as --     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@ -- -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-format-08936# If there is a---     shader object bound to a graphics stage or the currently bound---     graphics pipeline was created with the+--     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+--     dynamic state enabled and --     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@ --     has a 64-bit component, then the scalar width associated with all --     @Input@ variables of the corresponding @Location@ in the @Vertex@ --     @Execution@ @Model@ @OpEntryPoint@ /must/ be 64-bit -- -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-format-08937# If there is a---     shader object bound to a graphics stage or the currently bound---     graphics pipeline was created with the+--     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+--     dynamic state enabled and the scalar width associated with a --     @Location@ decorated @Input@ variable in the @Vertex@ @Execution@ --     @Model@ @OpEntryPoint@ is 64-bit, then the corresponding --     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@ --     /must/ have a 64-bit component -- -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-09203# If there is a---     shader object bound to a graphics stage or the currently bound---     graphics pipeline was created with the+--     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+--     dynamic state enabled and --     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@ --     has a 64-bit component, then all @Input@ variables at the --     corresponding @Location@ in the @Vertex@ @Execution@ @Model@ --     @OpEntryPoint@ /must/ not use components that are not present in the --     format ----- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08882# If a shader object---     is bound to the+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-04875# If there is a+--     shader object bound to the --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'---     stage, then---     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-04875# If the bound---     graphics pipeline state was created with the+--     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-08883# If a shader object---     is bound to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'---     stage, then---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-04879# If the bound---     graphics pipeline state was created with the+-- -   #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-rasterizerDiscardEnable-08884#---     If a shader object is bound to any graphics stage, and the most---     recent call to---     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnable' --     /must/ have been called in the current command buffer prior to this --     drawing command
src/Vulkan/Extensions/VK_NV_low_latency2.hs view
@@ -351,14 +351,57 @@   "dynamic" mkVkLatencySleepNV   :: FunPtr (Ptr Device_T -> SwapchainKHR -> Ptr LatencySleepInfoNV -> IO Result) -> Ptr Device_T -> SwapchainKHR -> Ptr LatencySleepInfoNV -> IO Result --- No documentation found for TopLevel "vkLatencySleepNV"+-- | vkLatencySleepNV - Trigger low latency mode Sleep+--+-- = Description+--+-- 'latencySleepNV' returns immediately. Applications /should/ use+-- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.waitSemaphores'+-- with+-- @pSleepInfo@::'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.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.+--+-- == 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_UNKNOWN'+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_low_latency2 VK_NV_low_latency2>,+-- 'Vulkan.Core10.Handles.Device', 'LatencySleepInfoNV',+-- 'Vulkan.Extensions.Handles.SwapchainKHR' latencySleepNV :: forall io                 . (MonadIO io)-               => -- No documentation found for Nested "vkLatencySleepNV" "device"+               => -- | @device@ is the device associated with @swapchain@.+                  --+                  -- #VUID-vkLatencySleepNV-device-parameter# @device@ /must/ be a valid+                  -- 'Vulkan.Core10.Handles.Device' handle                   Device-               -> -- No documentation found for Nested "vkLatencySleepNV" "swapchain"+               -> -- | @swapchain@ is the swapchain to delay associated CPU work based on+                  -- 'LatencySubmissionPresentIdNV' submissions.+                  --+                  -- #VUID-vkLatencySleepNV-swapchain-parameter# @swapchain@ /must/ be a+                  -- valid 'Vulkan.Extensions.Handles.SwapchainKHR' handle+                  --+                  -- #VUID-vkLatencySleepNV-swapchain-parent# @swapchain@ /must/ have been+                  -- created, allocated, or retrieved from @device@                   SwapchainKHR-               -> -- No documentation found for Nested "vkLatencySleepNV" "pSleepInfo"+               -> -- | @pSleepInfo@ is a pointer to a 'LatencySleepInfoNV' structure specifying+                  -- the parameters of the latency sleep.+                  --+                  -- #VUID-vkLatencySleepNV-pSleepInfo-parameter# @pSleepInfo@ /must/ be a+                  -- valid pointer to a valid 'LatencySleepInfoNV' structure                   LatencySleepInfoNV                -> io () latencySleepNV device swapchain sleepInfo = liftIO . evalContT $ do@@ -381,14 +424,42 @@   "dynamic" mkVkSetLatencyMarkerNV   :: FunPtr (Ptr Device_T -> SwapchainKHR -> Ptr SetLatencyMarkerInfoNV -> IO ()) -> Ptr Device_T -> SwapchainKHR -> Ptr SetLatencyMarkerInfoNV -> IO () --- No documentation found for TopLevel "vkSetLatencyMarkerNV"+-- | vkSetLatencyMarkerNV - Pass in marker for timing info+--+-- = Description+--+-- At the beginning and end of simulation and render threads and beginning+-- and end of 'Vulkan.Extensions.VK_KHR_swapchain.queuePresentKHR' calls,+-- 'setLatencyMarkerNV' /can/ be called to provide timestamps for the+-- application’s reference. These timestamps are returned with a call to+-- 'getLatencyTimingsNV' alongside driver provided timestamps at various+-- points of interest with regards to latency within the application.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_low_latency2 VK_NV_low_latency2>,+-- 'Vulkan.Core10.Handles.Device', 'SetLatencyMarkerInfoNV',+-- 'Vulkan.Extensions.Handles.SwapchainKHR' setLatencyMarkerNV :: forall io                     . (MonadIO io)-                   => -- No documentation found for Nested "vkSetLatencyMarkerNV" "device"+                   => -- | @device@ is the device associated with @swapchain@.+                      --+                      -- #VUID-vkSetLatencyMarkerNV-device-parameter# @device@ /must/ be a valid+                      -- 'Vulkan.Core10.Handles.Device' handle                       Device-                   -> -- No documentation found for Nested "vkSetLatencyMarkerNV" "swapchain"+                   -> -- | @swapchain@ is the swapchain to capture timestamps on.+                      --+                      -- #VUID-vkSetLatencyMarkerNV-swapchain-parameter# @swapchain@ /must/ be a+                      -- valid 'Vulkan.Extensions.Handles.SwapchainKHR' handle+                      --+                      -- #VUID-vkSetLatencyMarkerNV-swapchain-parent# @swapchain@ /must/ have+                      -- been created, allocated, or retrieved from @device@                       SwapchainKHR-                   -> -- No documentation found for Nested "vkSetLatencyMarkerNV" "pLatencyMarkerInfo"+                   -> -- | #VUID-vkSetLatencyMarkerNV-pLatencyMarkerInfo-parameter#+                      -- @pLatencyMarkerInfo@ /must/ be a valid pointer to a valid+                      -- 'SetLatencyMarkerInfoNV' structure                       SetLatencyMarkerInfoNV                    -> io () setLatencyMarkerNV device swapchain latencyMarkerInfo = liftIO . evalContT $ do@@ -411,12 +482,41 @@   "dynamic" mkVkGetLatencyTimingsNV   :: FunPtr (Ptr Device_T -> SwapchainKHR -> Ptr Word32 -> Ptr GetLatencyMarkerInfoNV -> IO ()) -> Ptr Device_T -> SwapchainKHR -> Ptr Word32 -> Ptr GetLatencyMarkerInfoNV -> IO () --- No documentation found for TopLevel "vkGetLatencyTimingsNV"+-- | vkGetLatencyTimingsNV - Get latency marker results+--+-- = Description+--+-- The timings returned by 'getLatencyTimingsNV' contain the timestamps+-- requested from 'setLatencyMarkerNV' and additional+-- implementation-specific markers defined in+-- 'LatencyTimingsFrameReportNV'. If @pTimings@ is @NULL@, then the maximum+-- number of queryable frame data is returned in @pTimingCount@. Otherwise,+-- @pTimingCount@ /must/ point to a variable set by the user to the number+-- of elements in the @pTimings@ array in @pGetLatencyMarkerInfo@, and on+-- return the variable is overwritten with the number of values actually+-- written to @pTimings@.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_low_latency2 VK_NV_low_latency2>,+-- 'Vulkan.Core10.Handles.Device', 'GetLatencyMarkerInfoNV',+-- 'Vulkan.Extensions.Handles.SwapchainKHR' getLatencyTimingsNV :: forall io                      . (MonadIO io)-                    => -- No documentation found for Nested "vkGetLatencyTimingsNV" "device"+                    => -- | @device@ is the device associated with @swapchain@.+                       --+                       -- #VUID-vkGetLatencyTimingsNV-device-parameter# @device@ /must/ be a valid+                       -- 'Vulkan.Core10.Handles.Device' handle                        Device-                    -> -- No documentation found for Nested "vkGetLatencyTimingsNV" "swapchain"+                    -> -- | @swapchain@ is the swapchain to return data from.+                       --+                       -- #VUID-vkGetLatencyTimingsNV-swapchain-parameter# @swapchain@ /must/ be a+                       -- valid 'Vulkan.Extensions.Handles.SwapchainKHR' handle+                       --+                       -- #VUID-vkGetLatencyTimingsNV-swapchain-parent# @swapchain@ /must/ have+                       -- been created, allocated, or retrieved from @device@                        SwapchainKHR                     -> io (("timingCount" ::: Word32), GetLatencyMarkerInfoNV) getLatencyTimingsNV device swapchain = liftIO . evalContT $ do@@ -561,11 +661,32 @@            zero  --- No documentation found for TopLevel "VkLatencySleepInfoNV"+-- | VkLatencySleepInfoNV - Structure specifying the parameters of+-- vkLatencySleepNV+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_low_latency2 VK_NV_low_latency2>,+-- 'Vulkan.Core10.Handles.Semaphore',+-- 'Vulkan.Core10.Enums.StructureType.StructureType', 'latencySleepNV' data LatencySleepInfoNV = LatencySleepInfoNV-  { -- No documentation found for Nested "VkLatencySleepInfoNV" "signalSemaphore"+  { -- | 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.signalSemaphore'+    -- is a semaphore that is signaled to indicate that the application+    -- /should/ resume input sampling work.+    --+    -- #VUID-VkLatencySleepInfoNV-signalSemaphore-09361#+    -- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.signalSemaphore'+    -- /must/ be a timeline semaphore+    --+    -- #VUID-VkLatencySleepInfoNV-signalSemaphore-parameter#+    -- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.signalSemaphore'+    -- /must/ be a valid 'Vulkan.Core10.Handles.Semaphore' handle     signalSemaphore :: Semaphore-  , -- No documentation found for Nested "VkLatencySleepInfoNV" "value"+  , -- | @value@ is the value that+    -- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.signalSemaphore'+    -- is set to for resuming sampling work.     value :: Word64   }   deriving (Typeable, Eq)@@ -610,11 +731,23 @@            zero  --- No documentation found for TopLevel "VkSetLatencyMarkerInfoNV"+-- | VkSetLatencyMarkerInfoNV - Structure specifying the parameters of+-- vkSetLatencyMarkerNV+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_low_latency2 VK_NV_low_latency2>,+-- 'LatencyMarkerNV', 'Vulkan.Core10.Enums.StructureType.StructureType',+-- 'setLatencyMarkerNV' data SetLatencyMarkerInfoNV = SetLatencyMarkerInfoNV   { -- No documentation found for Nested "VkSetLatencyMarkerInfoNV" "presentID"     presentID :: Word64-  , -- No documentation found for Nested "VkSetLatencyMarkerInfoNV" "marker"+  , -- | @marker@ is the type of timestamp to be recorded.+    --+    -- #VUID-VkSetLatencyMarkerInfoNV-marker-parameter# @marker@ /must/ be a+    -- valid 'LatencyMarkerNV' value     marker :: LatencyMarkerNV   }   deriving (Typeable, Eq)@@ -659,9 +792,27 @@            zero  --- No documentation found for TopLevel "VkGetLatencyMarkerInfoNV"+-- | VkGetLatencyMarkerInfoNV - Structure specifying the parameters of+-- vkGetLatencyTimingsNV+--+-- = Description+--+-- The elements of @pTimings@ are arranged in the order they were requested+-- in, with the oldest data in the first entry.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_low_latency2 VK_NV_low_latency2>,+-- 'LatencyTimingsFrameReportNV',+-- 'Vulkan.Core10.Enums.StructureType.StructureType', 'getLatencyTimingsNV' data GetLatencyMarkerInfoNV = GetLatencyMarkerInfoNV-  { -- No documentation found for Nested "VkGetLatencyMarkerInfoNV" "pTimings"+  { -- | @pTimings@ is either @NULL@ or a pointer to an array of+    -- 'LatencyTimingsFrameReportNV' structures.+    --+    -- #VUID-VkGetLatencyMarkerInfoNV-pTimings-parameter# @pTimings@ /must/ be+    -- a valid pointer to a 'LatencyTimingsFrameReportNV' structure     timings :: Ptr LatencyTimingsFrameReportNV }   deriving (Typeable, Eq) #if defined(GENERIC_INSTANCES)
src/Vulkan/Extensions/VK_NV_memory_decompression.hs view
@@ -584,6 +584,11 @@ -- -   #VUID-VkDecompressMemoryRegionNV-dstAddress-07687# The @dstAddress@ --     /must/ be 4 byte aligned --+-- -   #VUID-VkDecompressMemoryRegionNV-decompressionMethod-09395# If+--     @decompressionMethod@ is+--     'MEMORY_DECOMPRESSION_METHOD_GDEFLATE_1_0_BIT_NV', then+--     @decompressedSize@ /must/ be less than or equal to 65536 bytes+-- -- -   #VUID-VkDecompressMemoryRegionNV-dstAddress-07688# The memory in --     range @dstAddress@ and @dstAddress@ + @decompressedSize@ /must/ be --     valid and bound to a 'Vulkan.Core10.Handles.DeviceMemory' object
src/Vulkan/Extensions/VK_NV_mesh_shader.hs view
@@ -433,11 +433,10 @@ --     <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'+--     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@@ -1039,6 +1038,9 @@ -- -- -   #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',@@ -1047,9 +1049,10 @@ --     command -- -- -   #VUID-vkCmdDrawMeshTasksNV-None-08618# If a shader object is bound---     to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'---     stage, and the most recent call to+--     to any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current 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'@@ -1061,8 +1064,12 @@ --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT' --     or --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'---     stage, 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/---     have been called in the current command buffer prior to this drawing+--     stage, and the most recent 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@@ -1152,6 +1159,9 @@ -- -- -   #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',@@ -1170,6 +1180,9 @@ -- -- -   #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',@@ -1188,6 +1201,9 @@ -- -- -   #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',@@ -1219,12 +1235,12 @@ -- -- -   #VUID-vkCmdDrawMeshTasksNV-None-08626# If a shader object is bound --     to any graphics stage, and the most recent call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'---     in the current command buffer set @sampleLocationsEnable@ to---     'Vulkan.Core10.FundamentalTypes.TRUE', and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     'Vulkan.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@@ -1461,16 +1477,22 @@ --     the last call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' ----- -   #VUID-vkCmdDrawMeshTasksNV-None-09232# If a shader object is bound---     to any graphics stage, and the @VK_NV_clip_space_w_scaling@---     extension is enabled on the device, then+-- -   #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+--     /must/ have been called in the current command buffer prior to this --     drawing command ----- -   #VUID-vkCmdDrawMeshTasksNV-None-08636# If a shader object is bound---     to any graphics stage, and the @VK_NV_clip_space_w_scaling@---     extension is enabled on the device, then the @viewportCount@+-- -   #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@@ -1503,33 +1525,40 @@ -- -- -   #VUID-vkCmdDrawMeshTasksNV-shadingRateImage-09233# If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>---     feature is enabled, and the most recent call to+--     feature is enabled, and a shader object is bound to any graphics+--     stage, and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set rasterizerDiscardEnable to+--     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+--     /must/ have been called in the current command buffer prior to this --     drawing command ----- -   #VUID-vkCmdDrawMeshTasksNV-shadingRateImage-09234# If a shader---     object is bound to any graphics stage, and the+-- -   #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 on the device, and the most recent call to+--     feature is enabled, and a shader object is bound to any graphics+--     stage, and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set rasterizerDiscardEnable to+--     in 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+--     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+--     /must/ have been called in the current command buffer prior to this --     drawing command ----- -   #VUID-vkCmdDrawMeshTasksNV-None-08637# If a shader object is bound---     to any graphics stage, and the+-- -   #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 on the device, then the @viewportCount@ parameter---     in the last call to+--     feature is enabled, and a shader object is bound to any graphics+--     stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in 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@@ -1577,16 +1606,18 @@ --     /must/ have been called in the current command buffer prior to this --     drawing command ----- -   #VUID-vkCmdDrawMeshTasksNV-exclusiveScissor-09235# If a shader---     object is bound to any graphics stage, and the+-- -   #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, then+--     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+--     /must/ have been called in the current command buffer prior to this --     drawing command ----- -   #VUID-vkCmdDrawMeshTasksNV-None-08638# If a shader object is bound---     to any graphics stage, and the most recent call to+-- -   #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',@@ -1638,12 +1669,12 @@ -- -   #VUID-vkCmdDrawMeshTasksNV-None-08641# If a shader object is bound --     to the --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'---     stage, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>---     feature is enabled on the device, and the most recent call to+--     stage, and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     '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@@ -1686,7 +1717,9 @@ --     'Vulkan.Core10.FundamentalTypes.FALSE' -- -- -   #VUID-vkCmdDrawMeshTasksNV-None-08643# If a shader object is bound---     to any graphics stage, and the most recent call to+--     to the+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'+--     stage, and the most recent call 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@@ -2047,7 +2080,10 @@ --     object is bound to any graphics stage, and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     '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@@ -2550,7 +2586,9 @@ --     drawing command -- -- -   #VUID-vkCmdDrawMeshTasksNV-None-08658# If a shader object is bound---     to any graphics stage, and the most recent call to+--     to the+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'+--     stage, and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     in the current command buffer set @rasterizerDiscardEnable@ to --     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to@@ -2681,6 +2719,20 @@ --     /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'@@ -2693,7 +2745,10 @@ --     @VK_EXT_provoking_vertex@ extension is enabled, and a shader object --     is bound to the --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'---     stage, then+--     stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_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@@ -2709,6 +2764,9 @@ -- -   #VUID-vkCmdDrawMeshTasksNV-None-08666# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader --     object is bound to any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in 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@@ -2718,7 +2776,12 @@ -- -- -   #VUID-vkCmdDrawMeshTasksNV-None-08667# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader---     object is bound to the vertex stage, and the most recent call to+--     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@@ -2728,8 +2791,14 @@ -- -- -   #VUID-vkCmdDrawMeshTasksNV-None-08668# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader---     object that outputs line primitives is bound to the tessellation---     evaluation or geometry stage, then+--     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@@ -2745,6 +2814,9 @@ -- -   #VUID-vkCmdDrawMeshTasksNV-None-08669# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader --     object is bound to any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in 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@@ -2754,7 +2826,12 @@ -- -- -   #VUID-vkCmdDrawMeshTasksNV-None-08670# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader---     object is bound to the vertex stage, and the most recent call to+--     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@@ -2764,8 +2841,14 @@ -- -- -   #VUID-vkCmdDrawMeshTasksNV-None-08671# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader---     object that outputs line primitives is bound to the tessellation---     evaluation or geometry stage, then+--     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@@ -2781,6 +2864,9 @@ -- -   #VUID-vkCmdDrawMeshTasksNV-None-08672# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader --     object is bound to any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in 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@@ -2867,6 +2953,9 @@ --     shader object is bound to the --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' --     stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in 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@@ -2953,7 +3042,7 @@ --     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+--     /must/ have been called in the current command buffer prior to this --     drawing command -- -- -   #VUID-vkCmdDrawMeshTasksNV-None-08681# If the@@ -3084,6 +3173,21 @@ --     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'@@ -3096,6 +3200,21 @@ --     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'@@ -3108,6 +3227,21 @@ --     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'@@ -3168,8 +3302,10 @@ --     to --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' ----- -   #VUID-vkCmdDrawMeshTasksNV-sampleLocationsEnable-07484# If the bound---     graphics pipeline was created with the+-- -   #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@@ -3179,8 +3315,10 @@ --     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT' --     bit set ----- -   #VUID-vkCmdDrawMeshTasksNV-sampleLocationsEnable-07485# If the bound---     graphics pipeline state was created with the+-- -   #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'@@ -3196,8 +3334,10 @@ --     'Vulkan.Extensions.VK_EXT_sample_locations.getPhysicalDeviceMultisamplePropertiesEXT' --     with a @samples@ parameter equaling @rasterizationSamples@ ----- -   #VUID-vkCmdDrawMeshTasksNV-sampleLocationsEnable-07486# If the bound---     graphics pipeline state was created with the+-- -   #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'@@ -3213,8 +3353,10 @@ --     'Vulkan.Extensions.VK_EXT_sample_locations.getPhysicalDeviceMultisamplePropertiesEXT' --     with a @samples@ parameter equaling @rasterizationSamples@ ----- -   #VUID-vkCmdDrawMeshTasksNV-sampleLocationsEnable-07487# If the bound---     graphics pipeline state was created with the+-- -   #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@@ -3276,10 +3418,11 @@ --     /must/ equal @rasterizationSamples@ in the last call to --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' ----- -   #VUID-vkCmdDrawMeshTasksNV-coverageModulationTableEnable-07488# If---     the bound graphics pipeline state was created with the+-- -   #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+--     state enabled, and the last call to --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV' --     set @coverageModulationTableEnable@ to --     'Vulkan.Core10.FundamentalTypes.TRUE', then the@@ -3314,6 +3457,29 @@ --     '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@@ -3350,6 +3516,15 @@ --     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@@@ -3603,15 +3778,15 @@ --     and a fragment shader is bound, it /must/ not declare the --     @DepthReplacing@ or @StencilRefReplacingEXT@ execution modes ----- -   #VUID-vkCmdDrawMeshTasksNV-None-08880# If a shader object is bound---     to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'---     stage and the+-- -   #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 the most recent call to+--     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'+--     '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@@ -3886,11 +4061,10 @@ --     <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'+--     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@@ -4496,6 +4670,9 @@ -- -- -   #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',@@ -4504,9 +4681,10 @@ --     command -- -- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08618# If a shader object is---     bound to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'---     stage, and the most recent call to+--     bound to any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current 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'@@ -4518,8 +4696,12 @@ --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT' --     or --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'---     stage, 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/---     have been called in the current command buffer prior to this drawing+--     stage, and the most recent 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@@ -4609,6 +4791,9 @@ -- -- -   #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',@@ -4627,6 +4812,9 @@ -- -- -   #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',@@ -4645,6 +4833,9 @@ -- -- -   #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',@@ -4676,12 +4867,12 @@ -- -- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08626# If a shader object is --     bound to any graphics stage, and the most recent call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'---     in the current command buffer set @sampleLocationsEnable@ to---     'Vulkan.Core10.FundamentalTypes.TRUE', and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     'Vulkan.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@@ -4918,16 +5109,22 @@ --     the last call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' ----- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-09232# If a shader object is---     bound to any graphics stage, and the @VK_NV_clip_space_w_scaling@---     extension is enabled on the device, then+-- -   #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+--     /must/ have been called in the current command buffer prior to this --     drawing command ----- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08636# If a shader object is---     bound to any graphics stage, and the @VK_NV_clip_space_w_scaling@---     extension is enabled on the device, then the @viewportCount@+-- -   #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@@ -4960,33 +5157,40 @@ -- -- -   #VUID-vkCmdDrawMeshTasksIndirectNV-shadingRateImage-09233# If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>---     feature is enabled, and the most recent call to+--     feature is enabled, and a shader object is bound to any graphics+--     stage, and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set rasterizerDiscardEnable to+--     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+--     /must/ have been called in the current command buffer prior to this --     drawing command ----- -   #VUID-vkCmdDrawMeshTasksIndirectNV-shadingRateImage-09234# If a---     shader object is bound to any graphics stage, and the+-- -   #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 on the device, and the most recent call to+--     feature is enabled, and a shader object is bound to any graphics+--     stage, and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set rasterizerDiscardEnable to+--     in 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+--     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+--     /must/ have been called in the current command buffer prior to this --     drawing command ----- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08637# If a shader object is---     bound to any graphics stage, and the+-- -   #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 on the device, then the @viewportCount@ parameter---     in the last call to+--     feature is enabled, and a shader object is bound to any graphics+--     stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in 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@@ -5034,16 +5238,18 @@ --     /must/ have been called in the current command buffer prior to this --     drawing command ----- -   #VUID-vkCmdDrawMeshTasksIndirectNV-exclusiveScissor-09235# If a---     shader object is bound to any graphics stage, and the+-- -   #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, then+--     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+--     /must/ have been called in the current command buffer prior to this --     drawing command ----- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08638# If a shader object is---     bound to any graphics stage, and the most recent call to+-- -   #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',@@ -5095,12 +5301,12 @@ -- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08641# If a shader object is --     bound to the --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'---     stage, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>---     feature is enabled on the device, and the most recent call to+--     stage, and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     '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@@ -5144,7 +5350,9 @@ --     'Vulkan.Core10.FundamentalTypes.FALSE' -- -- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08643# If a shader object is---     bound to any graphics stage, and the most recent call to+--     bound to the+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'+--     stage, and the most recent call 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@@ -5505,7 +5713,10 @@ --     object is bound to any graphics stage, and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     '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@@ -6009,7 +6220,9 @@ --     drawing command -- -- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08658# If a shader object is---     bound to any graphics stage, and the most recent call to+--     bound to the+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'+--     stage, and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     in the current command buffer set @rasterizerDiscardEnable@ to --     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to@@ -6140,6 +6353,20 @@ --     /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'@@ -6152,7 +6379,10 @@ --     @VK_EXT_provoking_vertex@ extension is enabled, and a shader object --     is bound to the --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'---     stage, then+--     stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_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@@ -6168,6 +6398,9 @@ -- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08666# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader --     object is bound to any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in 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@@ -6177,7 +6410,12 @@ -- -- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08667# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader---     object is bound to the vertex stage, and the most recent call to+--     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@@ -6187,8 +6425,14 @@ -- -- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08668# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader---     object that outputs line primitives is bound to the tessellation---     evaluation or geometry stage, then+--     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@@ -6204,6 +6448,9 @@ -- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08669# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader --     object is bound to any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in 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@@ -6213,7 +6460,12 @@ -- -- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08670# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader---     object is bound to the vertex stage, and the most recent call to+--     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@@ -6223,8 +6475,14 @@ -- -- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08671# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader---     object that outputs line primitives is bound to the tessellation---     evaluation or geometry stage, then+--     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@@ -6240,6 +6498,9 @@ -- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08672# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader --     object is bound to any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in 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@@ -6326,6 +6587,9 @@ --     shader object is bound to the --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' --     stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in 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@@ -6413,7 +6677,7 @@ --     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+--     /must/ have been called in the current command buffer prior to this --     drawing command -- -- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08681# If the@@ -6544,6 +6808,21 @@ --     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'@@ -6556,6 +6835,21 @@ --     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'@@ -6568,6 +6862,21 @@ --     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'@@ -6628,8 +6937,10 @@ --     to --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' ----- -   #VUID-vkCmdDrawMeshTasksIndirectNV-sampleLocationsEnable-07484# If---     the bound graphics pipeline was created with the+-- -   #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@@ -6639,8 +6950,10 @@ --     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT' --     bit set ----- -   #VUID-vkCmdDrawMeshTasksIndirectNV-sampleLocationsEnable-07485# If---     the bound graphics pipeline state was created with the+-- -   #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'@@ -6656,8 +6969,10 @@ --     'Vulkan.Extensions.VK_EXT_sample_locations.getPhysicalDeviceMultisamplePropertiesEXT' --     with a @samples@ parameter equaling @rasterizationSamples@ ----- -   #VUID-vkCmdDrawMeshTasksIndirectNV-sampleLocationsEnable-07486# If---     the bound graphics pipeline state was created with the+-- -   #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'@@ -6673,8 +6988,10 @@ --     'Vulkan.Extensions.VK_EXT_sample_locations.getPhysicalDeviceMultisamplePropertiesEXT' --     with a @samples@ parameter equaling @rasterizationSamples@ ----- -   #VUID-vkCmdDrawMeshTasksIndirectNV-sampleLocationsEnable-07487# If---     the bound graphics pipeline state was created with the+-- -   #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@@ -6737,9 +7054,10 @@ --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' -- -- -   #VUID-vkCmdDrawMeshTasksIndirectNV-coverageModulationTableEnable-07488#---     If the bound graphics pipeline state was created with the+--     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+--     state enabled, and the last call to --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV' --     set @coverageModulationTableEnable@ to --     'Vulkan.Core10.FundamentalTypes.TRUE', then the@@ -6774,6 +7092,29 @@ --     '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@@ -6810,6 +7151,15 @@ --     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@@ -7065,15 +7415,15 @@ --     and a fragment shader is bound, it /must/ not declare the --     @DepthReplacing@ or @StencilRefReplacingEXT@ execution modes ----- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08880# If a shader object is---     bound to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'---     stage and the+-- -   #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 the most recent call to+--     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'+--     '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@@ -7400,11 +7750,10 @@ --     <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'+--     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@@ -8013,6 +8362,9 @@ -- -- -   #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',@@ -8021,9 +8373,10 @@ --     command -- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08618# If a shader---     object is bound to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'---     stage, and the most recent call to+--     object is bound to any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in the current 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'@@ -8035,8 +8388,12 @@ --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT' --     or --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'---     stage, 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' /must/---     have been called in the current command buffer prior to this drawing+--     stage, and the most recent 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@@ -8126,6 +8483,9 @@ -- -- -   #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',@@ -8144,6 +8504,9 @@ -- -- -   #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',@@ -8162,6 +8525,9 @@ -- -- -   #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',@@ -8193,12 +8559,12 @@ -- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08626# If a shader --     object is bound to any graphics stage, and the most recent call to---     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'---     in the current command buffer set @sampleLocationsEnable@ to---     'Vulkan.Core10.FundamentalTypes.TRUE', and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     'Vulkan.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@@ -8435,18 +8801,23 @@ --     the last call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' ----- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09232# If a shader---     object is bound to any graphics stage, and the---     @VK_NV_clip_space_w_scaling@ extension is enabled on the device,---     then+-- -   #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+--     /must/ have been called in the current command buffer prior to this --     drawing command ----- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08636# If a shader---     object is bound to any graphics stage, and the---     @VK_NV_clip_space_w_scaling@ extension is enabled on the device,---     then the @viewportCount@ parameter in the last call to+-- -   #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@@ -8479,33 +8850,41 @@ -- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-shadingRateImage-09233# If --     the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>---     feature is enabled, and the most recent call to+--     feature is enabled, and a shader object is bound to any graphics+--     stage, and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set rasterizerDiscardEnable to+--     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+--     /must/ have been called in the current command buffer prior to this --     drawing command ----- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-shadingRateImage-09234# If a---     shader object is bound to any graphics stage, and the+-- -   #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 on the device, and the most recent call to+--     feature is enabled, and a shader object is bound to any graphics+--     stage, and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'---     in the current command buffer set rasterizerDiscardEnable to+--     in 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+--     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+--     /must/ have been called in the current command buffer prior to this --     drawing command ----- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08637# If a shader---     object is bound to any graphics stage, and the+-- -   #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 on the device, then the @viewportCount@ parameter---     in the last call to+--     feature is enabled, and a shader object is bound to any graphics+--     stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in 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@@ -8553,16 +8932,19 @@ --     /must/ have been called in the current command buffer prior to this --     drawing command ----- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-exclusiveScissor-09235# If a---     shader object is bound to any graphics stage, and the+-- -   #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, then+--     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+--     /must/ have been called in the current command buffer prior to this --     drawing command ----- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08638# If a shader---     object is bound to any graphics stage, and the most recent call to+-- -   #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',@@ -8614,12 +8996,12 @@ -- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08641# If a shader --     object is bound to the --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'---     stage, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-logicOp logicOp>---     feature is enabled on the device, and the most recent call to+--     stage, and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     '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@@ -8663,7 +9045,9 @@ --     'Vulkan.Core10.FundamentalTypes.FALSE' -- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08643# If a shader---     object is bound to any graphics stage, and the most recent call to+--     object is bound to the+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'+--     stage, and the most recent call 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@@ -9025,7 +9409,10 @@ --     call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', then+--     '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@@ -9529,7 +9916,9 @@ --     drawing command -- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08658# If a shader---     object is bound to any graphics stage, and the most recent call to+--     object is bound to the+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'+--     stage, and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     in the current command buffer set @rasterizerDiscardEnable@ to --     'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to@@ -9660,6 +10049,20 @@ --     /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'@@ -9672,7 +10075,10 @@ --     @VK_EXT_provoking_vertex@ extension is enabled, and a shader object --     is bound to the --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT'---     stage, then+--     stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_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@@ -9688,6 +10094,9 @@ -- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08666# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader --     object is bound to any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in 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@@ -9697,7 +10106,12 @@ -- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08667# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader---     object is bound to the vertex stage, and the most recent call to+--     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@@ -9707,8 +10121,14 @@ -- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08668# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader---     object that outputs line primitives is bound to the tessellation---     evaluation or geometry stage, then+--     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@@ -9724,6 +10144,9 @@ -- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08669# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader --     object is bound to any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in 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@@ -9733,7 +10156,12 @@ -- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08670# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader---     object is bound to the vertex stage, and the most recent call to+--     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@@ -9743,8 +10171,14 @@ -- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08671# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader---     object that outputs line primitives is bound to the tessellation---     evaluation or geometry stage, then+--     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@@ -9760,6 +10194,9 @@ -- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08672# If the --     @VK_EXT_line_rasterization@ extension is enabled, and a shader --     object is bound to any graphics stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in 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@@ -9846,6 +10283,9 @@ --     shader object is bound to the --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' --     stage, and the most recent call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     in 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@@ -9933,7 +10373,7 @@ --     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+--     /must/ have been called in the current command buffer prior to this --     drawing command -- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08681# If the@@ -10064,6 +10504,21 @@ --     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'@@ -10076,6 +10531,21 @@ --     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'@@ -10088,6 +10558,21 @@ --     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'@@ -10149,7 +10634,9 @@ --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' -- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsEnable-07484#---     If the bound graphics pipeline was created with the+--     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@@ -10160,7 +10647,9 @@ --     bit set -- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsEnable-07485#---     If the bound graphics pipeline state was created with the+--     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'@@ -10177,7 +10666,9 @@ --     with a @samples@ parameter equaling @rasterizationSamples@ -- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsEnable-07486#---     If the bound graphics pipeline state was created with the+--     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'@@ -10194,7 +10685,9 @@ --     with a @samples@ parameter equaling @rasterizationSamples@ -- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsEnable-07487#---     If the bound graphics pipeline state was created with the+--     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@@ -10257,9 +10750,10 @@ --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' -- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-coverageModulationTableEnable-07488#---     If the bound graphics pipeline state was created with the+--     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+--     state enabled, and the last call to --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV' --     set @coverageModulationTableEnable@ to --     'Vulkan.Core10.FundamentalTypes.TRUE', then the@@ -10294,6 +10788,29 @@ --     '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@@ -10330,6 +10847,15 @@ --     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@@ -10585,15 +11111,15 @@ --     and a fragment shader is bound, it /must/ not declare the --     @DepthReplacing@ or @StencilRefReplacingEXT@ execution modes ----- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08880# If a shader---     object is bound to the---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT'---     stage and the+-- -   #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 the most recent call to+--     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'+--     '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
src/Vulkan/Extensions/VK_NV_ray_tracing.hs view
@@ -1813,11 +1813,10 @@ --     <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'+--     a result of this command /must/ not have a+--     'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'::@reductionMode@+--     equal to+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM' -- -- -   #VUID-vkCmdTraceRaysNV-reductionMode-09213# Any --     'Vulkan.Core10.Handles.ImageView' being sampled with a
src/Vulkan/Extensions/VK_QCOM_image_processing.hs view
@@ -387,39 +387,6 @@ -- | VkPhysicalDeviceImageProcessingPropertiesQCOM - Structure containing -- image processing properties ----- = Members------ -   @sType@ is a 'Vulkan.Core10.Enums.StructureType.StructureType' value---     identifying this structure.------ -   @pNext@ is @NULL@ or a pointer to a structure extending this---     structure.------ -   #limits-weightfilter-phases#@maxWeightFilterPhases@ is the maximum---     value that /can/ be specified for---     'ImageViewSampleWeightCreateInfoQCOM'::@numPhases@. in---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-weightimage-filterphases weight image sampling>---     operations.------ -   #limits-weightfilter-maxdimension#@maxWeightFilterDimension@ is a---     'Vulkan.Core10.FundamentalTypes.Extent2D' describing the largest---     dimensions (@width@ and @height@) that /can/ be specified for---     'ImageViewSampleWeightCreateInfoQCOM'::@filterSize@.------ -   #limits-blockmatch-maxblocksize#@maxBlockMatchRegion@ is a---     'Vulkan.Core10.FundamentalTypes.Extent2D' describing the largest---     dimensions (@width@ and @height@) that /can/ be specified for---     @blockSize@ in---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-blockmatch block matching>---     operations.------ -   #limits-boxfilter-maxblocksize#@maxBoxFilterBlockSize@ is a---     'Vulkan.Core10.FundamentalTypes.Extent2D' describing the maximum---     dimensions (@width@ and @height@) that /can/ be specified for---     @blocksize@ in---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-boxfilter box filter sampling>---     operations.--- -- = Description -- -- If the 'PhysicalDeviceImageProcessingPropertiesQCOM' structure is@@ -441,13 +408,30 @@ -- 'Vulkan.Core10.FundamentalTypes.Extent2D', -- 'Vulkan.Core10.Enums.StructureType.StructureType' data PhysicalDeviceImageProcessingPropertiesQCOM = PhysicalDeviceImageProcessingPropertiesQCOM-  { -- No documentation found for Nested "VkPhysicalDeviceImageProcessingPropertiesQCOM" "maxWeightFilterPhases"+  { -- | #limits-weightfilter-phases# @maxWeightFilterPhases@ is the maximum+    -- value that /can/ be specified for+    -- 'ImageViewSampleWeightCreateInfoQCOM'::@numPhases@ in+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-weightimage-filterphases weight image sampling>+    -- operations.     maxWeightFilterPhases :: Word32-  , -- No documentation found for Nested "VkPhysicalDeviceImageProcessingPropertiesQCOM" "maxWeightFilterDimension"+  , -- | #limits-weightfilter-maxdimension# @maxWeightFilterDimension@ is a+    -- 'Vulkan.Core10.FundamentalTypes.Extent2D' describing the largest+    -- dimensions (@width@ and @height@) that /can/ be specified for+    -- 'ImageViewSampleWeightCreateInfoQCOM'::@filterSize@.     maxWeightFilterDimension :: Extent2D-  , -- No documentation found for Nested "VkPhysicalDeviceImageProcessingPropertiesQCOM" "maxBlockMatchRegion"+  , -- | #limits-blockmatch-maxblocksize# @maxBlockMatchRegion@ is a+    -- 'Vulkan.Core10.FundamentalTypes.Extent2D' describing the largest+    -- dimensions (@width@ and @height@) that /can/ be specified for+    -- @blockSize@ in+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-blockmatch block matching>+    -- operations.     maxBlockMatchRegion :: Extent2D-  , -- No documentation found for Nested "VkPhysicalDeviceImageProcessingPropertiesQCOM" "maxBoxFilterBlockSize"+  , -- | #limits-boxfilter-maxblocksize# @maxBoxFilterBlockSize@ is a+    -- 'Vulkan.Core10.FundamentalTypes.Extent2D' describing the maximum+    -- dimensions (@width@ and @height@) that /can/ be specified for+    -- @blocksize@ in+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-boxfilter box filter sampling>+    -- operations.     maxBoxFilterBlockSize :: Extent2D   }   deriving (Typeable)
src/Vulkan/Extensions/VK_QCOM_image_processing2.hs view
@@ -330,11 +330,6 @@ -- -- = Description ----- -   #limits-blockmatch-maxWindowExtent#@maxBlockMatchWindow@ is a---     'Vulkan.Core10.FundamentalTypes.Extent2D' describing the largest---     dimensions (@width@ and @height@) that /can/ be specified for the---     block match window.--- -- If the 'PhysicalDeviceImageProcessing2PropertiesQCOM' structure is -- included in the @pNext@ chain of the -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2'@@ -348,17 +343,16 @@ -- -- == Valid Usage (Implicit) ----- -   #VUID-VkPhysicalDeviceImageProcessing2PropertiesQCOM-sType-sType#---     @sType@ /must/ be---     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_PROPERTIES_QCOM'--- -- = See Also -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QCOM_image_processing2 VK_QCOM_image_processing2>, -- 'Vulkan.Core10.FundamentalTypes.Extent2D', -- 'Vulkan.Core10.Enums.StructureType.StructureType' data PhysicalDeviceImageProcessing2PropertiesQCOM = PhysicalDeviceImageProcessing2PropertiesQCOM-  { -- No documentation found for Nested "VkPhysicalDeviceImageProcessing2PropertiesQCOM" "maxBlockMatchWindow"+  { -- | #limits-blockmatch-maxWindowExtent# @maxBlockMatchWindow@ is a+    -- 'Vulkan.Core10.FundamentalTypes.Extent2D' describing the largest+    -- dimensions (@width@ and @height@) that /can/ be specified for the block+    -- match window.     maxBlockMatchWindow :: Extent2D }   deriving (Typeable) #if defined(GENERIC_INSTANCES)
src/Vulkan/Version.hs view
@@ -19,11 +19,11 @@ import Data.Word (Word32)  pattern HEADER_VERSION :: Word32-pattern HEADER_VERSION = 268+pattern HEADER_VERSION = 269   pattern HEADER_VERSION_COMPLETE :: Word32-pattern HEADER_VERSION_COMPLETE = MAKE_API_VERSION 1 3 268+pattern HEADER_VERSION_COMPLETE = MAKE_API_VERSION 1 3 269   pattern MAKE_API_VERSION :: Word32 -> Word32 -> Word32 -> Word32
vulkan.cabal view
@@ -5,7 +5,7 @@ -- see: https://github.com/sol/hpack  name:           vulkan-version:        3.26+version:        3.26.1 synopsis:       Bindings to the Vulkan graphics API. description:    Please see [the readme](https://github.com/expipiplus1/vulkan/#readme) category:       Graphics@@ -311,6 +311,7 @@       Vulkan.Extensions.VK_ANDROID_external_format_resolve       Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer       Vulkan.Extensions.VK_ARM_rasterization_order_attachment_access+      Vulkan.Extensions.VK_ARM_scheduling_controls       Vulkan.Extensions.VK_ARM_shader_core_builtins       Vulkan.Extensions.VK_ARM_shader_core_properties       Vulkan.Extensions.VK_EXT_4444_formats@@ -562,6 +563,7 @@       Vulkan.Extensions.VK_NV_copy_memory_indirect       Vulkan.Extensions.VK_NV_corner_sampled_image       Vulkan.Extensions.VK_NV_coverage_reduction_mode+      Vulkan.Extensions.VK_NV_cuda_kernel_launch       Vulkan.Extensions.VK_NV_dedicated_allocation       Vulkan.Extensions.VK_NV_dedicated_allocation_image_aliasing       Vulkan.Extensions.VK_NV_descriptor_pool_overallocation