vulkan 3.26 → 3.26.1
raw patch · 61 files changed
+31243/−25678 lines, 61 files
Files
- changelog.md +3/−0
- package.yaml +1/−1
- src/Vulkan/CStruct/Extends.hs +26/−0
- src/Vulkan/Core10/AllocationCallbacks.hs +4/−0
- src/Vulkan/Core10/CommandBufferBuilding.hs +24507/−23879
- src/Vulkan/Core10/DescriptorSet.hs +18/−17
- src/Vulkan/Core10/Device.hs +38/−2
- src/Vulkan/Core10/DeviceInitialization.hs +1/−1
- src/Vulkan/Core10/Enums/ObjectType.hs +12/−0
- src/Vulkan/Core10/Enums/StructureType.hs +80/−0
- src/Vulkan/Core10/FundamentalTypes.hs +2/−0
- src/Vulkan/Core10/Handles.hs +6/−0
- src/Vulkan/Core10/Image.hs +8/−0
- src/Vulkan/Core10/Pass.hs +4/−9
- src/Vulkan/Core10/Pipeline.hs +1/−10
- src/Vulkan/Core10/PipelineLayout.hs +4/−4
- src/Vulkan/Core10/Query.hs +3/−0
- src/Vulkan/Core11/Promoted_From_VK_KHR_device_group.hs +4/−5
- src/Vulkan/Core11/Promoted_From_VK_KHR_get_physical_device_properties2.hs +10/−0
- src/Vulkan/Core12/Promoted_From_VK_KHR_create_renderpass2.hs +1/−1
- src/Vulkan/Core12/Promoted_From_VK_KHR_draw_indirect_count.hs +570/−250
- src/Vulkan/Core13/Promoted_From_VK_KHR_copy_commands2.hs +48/−56
- src/Vulkan/Core13/Promoted_From_VK_KHR_dynamic_rendering.hs +46/−36
- src/Vulkan/Dynamic.hs +31/−1
- src/Vulkan/Extensions.hs +4/−0
- src/Vulkan/Extensions/Handles.hs +39/−0
- src/Vulkan/Extensions/Handles.hs-boot +8/−0
- src/Vulkan/Extensions/VK_AMDX_shader_enqueue.hs +12/−15
- src/Vulkan/Extensions/VK_ARM_scheduling_controls.hs +433/−0
- src/Vulkan/Extensions/VK_ARM_scheduling_controls.hs-boot +155/−0
- src/Vulkan/Extensions/VK_EXT_debug_report.hs +18/−0
- src/Vulkan/Extensions/VK_EXT_descriptor_buffer.hs +1/−1
- src/Vulkan/Extensions/VK_EXT_device_address_binding_report.hs +2/−2
- src/Vulkan/Extensions/VK_EXT_device_address_binding_report.hs-boot +2/−2
- src/Vulkan/Extensions/VK_EXT_extended_dynamic_state.hs +1/−1
- src/Vulkan/Extensions/VK_EXT_extended_dynamic_state.hs-boot +1/−1
- src/Vulkan/Extensions/VK_EXT_extended_dynamic_state2.hs +20/−10
- src/Vulkan/Extensions/VK_EXT_extended_dynamic_state3.hs +310/−163
- src/Vulkan/Extensions/VK_EXT_extended_dynamic_state3.hs-boot +1/−1
- src/Vulkan/Extensions/VK_EXT_host_image_copy.hs +24/−28
- src/Vulkan/Extensions/VK_EXT_mesh_shader.hs +731/−205
- src/Vulkan/Extensions/VK_EXT_multi_draw.hs +575/−254
- src/Vulkan/Extensions/VK_EXT_shader_object.hs +10/−0
- src/Vulkan/Extensions/VK_EXT_transform_feedback.hs +290/−130
- src/Vulkan/Extensions/VK_HUAWEI_cluster_culling_shader.hs +488/−138
- src/Vulkan/Extensions/VK_HUAWEI_subpass_shading.hs +4/−5
- src/Vulkan/Extensions/VK_KHR_buffer_device_address.hs +2/−21
- src/Vulkan/Extensions/VK_KHR_ray_tracing_maintenance1.hs +4/−5
- src/Vulkan/Extensions/VK_KHR_ray_tracing_pipeline.hs +8/−10
- src/Vulkan/Extensions/VK_NV_copy_memory_indirect.hs +6/−6
- src/Vulkan/Extensions/VK_NV_cuda_kernel_launch.hs +1203/−0
- src/Vulkan/Extensions/VK_NV_cuda_kernel_launch.hs-boot +234/−0
- src/Vulkan/Extensions/VK_NV_device_generated_commands.hs +283/−123
- src/Vulkan/Extensions/VK_NV_low_latency2.hs +169/−18
- src/Vulkan/Extensions/VK_NV_memory_decompression.hs +5/−0
- src/Vulkan/Extensions/VK_NV_mesh_shader.hs +738/−212
- src/Vulkan/Extensions/VK_NV_ray_tracing.hs +4/−5
- src/Vulkan/Extensions/VK_QCOM_image_processing.hs +21/−37
- src/Vulkan/Extensions/VK_QCOM_image_processing2.hs +4/−10
- src/Vulkan/Version.hs +2/−2
- vulkan.cabal +3/−1
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